0
我是客戶端 - 我希望調用Web服務的方法。Perl中的Web服務客戶端
我有一個Web服務地址(.svc後綴),我有方法的名稱,返回值和它們的參數。
該服務是用WCF(HTML終點)實現的。我希望通過SOAP::Lite
來調用這些方法。我應該爲URI,代理以及我怎麼稱呼這些方法寫什麼?
我是客戶端 - 我希望調用Web服務的方法。Perl中的Web服務客戶端
我有一個Web服務地址(.svc後綴),我有方法的名稱,返回值和它們的參數。
該服務是用WCF(HTML終點)實現的。我希望通過SOAP::Lite
來調用這些方法。我應該爲URI,代理以及我怎麼稱呼這些方法寫什麼?
您設置
proxy
到端點並uri
(或最新版本ns
)在方法定義的命名空間。一個做到這一點的最簡單的方法是簡單地使用WSDL URI並創建一個SOAP::Schema
對象有了它,就像這樣:
my $schema = SOAP::Schema->new(schema_url => $destination_URL)->parse();
my $services = $schema->services();
和轉儲這兩個對象。
你可以找
my $method_def = $service->{ $method_name };
my $uri = $method_def->{namespace};
my $proxy = $method_def->{endpoint}->value();
,並使用這些值,如果一切都在那裏。
爲了讓我的SOAP客戶端體系結構能夠正常工作,我不得不通過大量的SOAP :: Lite轉儲。如果你想拍攝所有的麻煩,你應該知道如何調試和轉儲Perl對象。
我會告訴你一個服務的匿名轉儲:
$services = {
ServiceName => {
MethodName => {
endpoint => bless({
_attr => {},
_name => 'location',
_signature => [],
_value => [
# v-- This value you pass to SOAP::Lite->proxy
'http://some.domain.com/WebServices/SOAPEndpoint.asmx'
]
}, 'SOAP::Custom::XML::Data'
),
# v-- This value you pass to uri/default_ns/ns
namespace => 'http://some.domain.com/',
parameters => [ ... ]
...
}
}
};
該死的,你寫一個偉大的答案,一個可怕的問題!現在我無法刪除它:P – 2011-04-08 09:52:11