通过旧 Perl 版本的 Web 服务

发布于 2024-11-05 03:24:06 字数 1248 浏览 1 评论 0原文

当我使用升级版本的perl时(当然,也升级版本的soap::lite) 所以我用所有需要的方法成功连接到我的服务器。 当我使用较旧的 perl 版本(当然,还有较旧版本的soap::lite)移动时,因此信封创建方式不同,并且我没有成功调用获取参数的服务器方法 出色地。 是否需要更改代码或仅更改模块? 如果可以通过代码进行更改,那么我需要更改哪些内容。现在我的代码如下所示:

my $ws_url = '$url';
my $ws_uri = '$uri';
my $ws_xmlns = '$xmlns';            

eval
{
                  my $soap = SOAP::Lite
                  -> uri( $ws_uri)
                  -> on_action(sub{sprintf '%s', @_})
                  -> proxy($ws_url,timeout => 15);

                 my @params = ( SOAP::Data->name(Add => "$paramAdd"));
                 $response = $soap->EndUnit(@params);

                  if($response->fault)
                  {
                      # die raises an exception
                      print "=======fault happened=====\n";
                      die $response->faultstring;
                  }
                  else
                  {
                      print $response->result;
                      print "\n";
                  }
                        };
                        if ($@)
                        {
                          print "$@\n";
                          print "Failed \n";
                        };

非常感谢您的帮助! 诺亚:-)

when I am using upgrade version of perl (ofcourse, also upgrade version of soap::lite)
so I successfully connect to my server with all needed methods.
when I moved using older perl version (ofcourse, also older version of soap::lite), so envelope created differently, and I did not success invoke server methods which got params
well.
Is there need change something in code or only in modules?
If change can be done thru code, so which thing I need to change. for now my code look like:

my $ws_url = '$url';
my $ws_uri = '$uri';
my $ws_xmlns = '$xmlns';            

eval
{
                  my $soap = SOAP::Lite
                  -> uri( $ws_uri)
                  -> on_action(sub{sprintf '%s', @_})
                  -> proxy($ws_url,timeout => 15);

                 my @params = ( SOAP::Data->name(Add => "$paramAdd"));
                 $response = $soap->EndUnit(@params);

                  if($response->fault)
                  {
                      # die raises an exception
                      print "=======fault happened=====\n";
                      die $response->faultstring;
                  }
                  else
                  {
                      print $response->result;
                      print "\n";
                  }
                        };
                        if ($@)
                        {
                          print "$@\n";
                          print "Failed \n";
                        };

Thanks a lot ahead for your help!
Noa :-)

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

淡写薰衣草的香 2024-11-12 03:24:06

查看您正在使用的 SOAP::Lite 版本之间的更改: 更改

另外,您应该列出您正在谈论的 Perl 和 SOAP::Lite 的版本。

Take a look at the changes between the versions of SOAP::Lite you are using : Changes

Also, you shold list what versions of Perl and SOAP::Lite you are talking about ..

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文