Perlを使用して文字列引数を渡すときに問題があります。soap lite渡し文字列引数
に次のコード
#!/usr/bin/perl -w use SOAP::Lite; my $service = SOAP::Lite->service('http://localhost:8080/greeting?wsdl'); print $service->greetClient('perl wooooo'), "\n";
結果ヌル挨拶!
同様のPythonコード
from suds.client import Client
client = Client('http://localhost:8080/greeting?wsdl')
print client.service.greetClient('python wooooo')
完全
挨拶
作品をPythonがをwooooo ...良い一日を!私は同じ結果と異なるエンコーディングに
print $service->encoding('utf-8')->greetClient("perl wooooo"), "\n";
を設定しようとしました...素敵な一日
を持っています。
SOAPモニタは問題になる可能性がどのようなPythonの
<ns0:greetClient>
<arg0>python wooooo</arg0>
</ns0:greetClient>
の場合に存在しているPerlの
<greetClient xsi:nil="true" xsi:type="tns:greetClient" />
の場合にはarg0には存在しないことを示して?
なぜPerlとSOAPクライアントをPythonに比べて実装するのはとても複雑ですか?
EDIT: SOLUTION
最後に、次の解決策は、
#!/usr/bin/perl -w
use strict;
use warnings;
use XML::Compile::SOAP11;
use XML::Compile::WSDL11;
use XML::Compile::Transport::SOAPHTTP;
my $soap = XML::Compile::WSDL11->new('c:/temp/greeting.wsdl');
my $call = $soap->compileClient('greetClient');
print $call->(arg0 => 'perl wooooo'){'greetClientResponse'}{'return'}, "\n";
ご回答ありがとうございます。私はPerlの専門家ではない。 SOAP :: WSDLはhttp://search.cpan.org/~mkutter/SOAP-WSDL-2.00.10/にあります。どうすればインストールできますか? ppmではリストに表示されませんか? –
私はgccやその他のものを探しているので、Windowsとperl Build.PLで動作していません。理想的には、私はppmでSOAP:Liteと同じようにパッケージをインストールしたいと考えています。 –
ああ、申し訳ありませんが、単に 'SOAP :: Lite'について通風する機会を得ています。おそらく 'SOAP :: WSDL'はActivePerlでは利用できません。あなたは 'XML :: Compile :: SOAP'を見ますか?私はそれを使用するために私の答えを更新します。 –