私は理解できる答えを探して良い週を過ごしました。私は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を作成します。 (リサが提供されたクラス・ジェネレータを使用する必要があります。
あなたにリサに感謝。イムは、私のクライアントでこれらのクラスを使用する方法に見に行きます...あなたが知っている有用な記事? – goingsideways
非常にクールです。 – goingsideways