近期的一个项目要用perl的soap的client 调用 DotNet的soap service。研究了一下,前期遇到点小麻烦,经过努力最终还是可以了。 代码: my $soap = SOAP::Lite ->uri('http://tempuri.org/') #webservice的名字空间,这个可以访问webservice的wsdl看说明 ->on_action(sub {join '/', 'http://tempuri.org', $_[1]} ) # perl默认的分割符是# ,来访问服务与方法的,但是dotnet需要用 / 来分割,这行在这里必要。 ->proxy('http://www.xxx.xxx.com/xxx.asmx); #服务的uri my $str = 'ABCDEFG'; my @cc = ( SOAP::Data->name('param')->value($str)->type('string'), #这个,比较重要,声明方法的参数以及类型 ); my $result = $soap->Method(@cc); #需要调用的webservice方法 unless ($result->fault) { print $result->result(); return; } } else { print $result->faultcode; print $result->faultstring; }