2011-01-06 12 views
2

私は理解できる答えを探して良い週を過ごしました。私はWeb開発の世界にはかなり新しいです。PHP SOAPの属性.net Webサービス

私の問題は、属性の値と要素自体を設定する必要があるSOAPメッセージを生成することにあります。

ここでは、作成しようとしているSOAPメッセージの簡単な例を示します。必要

クライアント= PHP
サーバー= .NET

SOAPメッセージ:

<PingRequest EchoToken="string"> 
     <EchoData>string</EchoData> 
</PingRequest> 

WSDLの一部

<s:element name="PingRequest" type="s0:PingRequest" /> 
    <s:complexType name="PingRequest"> 
    <s:sequence> 
     <s:element minOccurs="0" maxOccurs="1" name="EchoData" type="s:string" /> 
    </s:sequence> 
    <s:attribute name="EchoToken" type="s:string" /> 
    </s:complexType> 

私はクラスを作成する方法を理解しようとする多くを費やしてきましたと他のオブジェクトは、Webサービスに渡すが、私の脳は私に失敗します。私の質問が少し不明な場合にはお詫び申し上げます。

<?php 
    //connection to wsdl 
    $client = new SoapClient('http://localhost/ws.asmx?wsdl', 
       array( "trace"   => 1, 
         "exceptions"  => 0 
       )); 

    try { 
     // Ping = Function 
     // PingRequest = method? 
     $result = $client->PingRequest(array('EchoData' => 'moo')); 

    } catch (SOAPFAULT $f){ 
    } 

    echo "\n The Result: \n"; 
    print_r($result); 

    print "<pre>"; 
    print "Request :\n".htmlspecialchars($client->__getLastRequest()) ."\n"; 
    print "Response:\n".htmlspecialchars($client->__getLastResponse())."\n"; 
    print "</pre>"; 
    ; 

?> 

要求::

<ns1:PingRequest> 
    <ns1:EchoData>moo</ns1:EchoData> 
</ns1:PingRequest> 

すべてのヘルプは、親指でここに私のWebサービスを呼び出すの私の試みです。

編集:リサの 感謝:私はこのためのクラスを作成することができた。しかし、私はまだ

class PingRequest { 
    public $EchoData; // string 
    public $EchoToken; // string 
    public $TimeStamp; // dateTime 
    public $Target; // PingTarget 
    public $Version; // decimal 
    public $TransactionIdentifier; // string 
    public $SequenceNmbr; // nonNegativeInteger 
    public $TransactionStatusCode; // PingRequestStatusCode 
    public $RetransmissionIndicator; // boolean 
} 

、それは非常に簡単にを理解しません。ありがとう

webserviceクラスの名前で新しいクラス変数を作成し、渡す要素または属性ごとにstdclassesを作成します。 (リサが提供されたクラス・ジェネレータを使用する必要があります。

答えて

2

あなたは、WSDLファイルからPHPクラスを生成する必要がある。 http://www.urdalen.no/wsdl2php/index.php

+0

あなたにリサに感謝。イムは、私のクライアントでこれらのクラスを使用する方法に見に行きます...あなたが知っている有用な記事? – goingsideways

+0

非常にクールです。 – goingsideways

関連する問題