2011-04-07 21 views
0

私はクライアントです - Webサービスのメソッドを呼び出したいと思います。PerlでのWebサービスのクライアント

Webサービスアドレス(.svcサフィックス)があり、メソッドの名前、戻り値、およびそれらの引数があります。

サービスはWCF(HTMLエンドポイント)で実装されています。私はこれらのメソッドをSOAP::Liteと呼んでいます。 URI、プロキシとそのメソッドをどのようにして正確に書くのですか?

答えて

5

あなたは、メソッドの定義では名前空間に

  1. proxy
  2. エンドポイントへと
  3. uri(または最新バージョン ns中)

    を設定します。

    my $schema = SOAP::Schema->new(schema_url => $destination_URL)->parse(); 
    my $services = $schema->services(); 
    

    そして、それら2つのオブジェクトをダンプ:

これを実行する最も簡単な方法の1つは、WSDL URIを使用して、それをSOAP::Schemaオブジェクトを作成し、そのようにすることです。

あなたは

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 => [ ... ] 
      ... 
     } 
    } 
}; 
+3

いまいましい:

は、私はあなたのサービスの匿名化ダンプを紹介します!今私はそれを削除することはできません:P –

関連する問題