0

よし、ここで完全に道に迷った!2 日間、目がくらんで画面を見つめていました。インターネットで見つけられるすべての説明やチュートリアルは、SOAP を使用した経験があることを前提としています。

SOAPuiを使用して、少なくともリクエストを試して結果を見ることができました:)しかし、これをPHPで複製する必要があります...たとえば、認証資格情報を使用してPHPでリクエストを作成し、レスポンスをmySQLテーブルに保存します。

依頼内容はこんな感じ

<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"    xmlns:tem="http://tempuri.org/">
<soapenv:Header/>
    <soapenv:Body>
      <tem:DoThis>
         <tem:licensId>[MYLICENSID]</tem:licensId>
         <tem:licenskey>[MYLICENSKEY]</tem:licenskey>
         <tem:guid>[AGUID]</tem:guid>
      </tem:DoThis>
   </soapenv:Body>
</soapenv:Envelope>

だから私はリクエストを検証/認証する必要があります(私は推測します)? しかし、PHPでこれを行うにはどうすればよいですか? リクエストを受け取ったら、レスポンスはどのように表示されますか? 既存の mySQL DB に挿入したいと思います。つまり、これが私の「エンドゲーム」/目的です。外部システムから情報を取得し、DB内の既存の情報と比較し、新しい情報があれば既存のものと入れ替えたり、新たに追加したりします。

私は試した

$wsdl = 'http://URLTOSERVICE/Export.svc?wsdl';
$client =
new SoapClient(
    $wsdl,
    array(
        "tem:licensid"      =>  "[MYLICENSID]",
        "tem:licenskey" =>  "[MYLICENSKEY]",
        "tem:guid"      =>  "[AGUID]"
    )
);

print_r($client->DoThis());

しかし、応答は、白紙を 2 日間調べた場合と同じくらい興味深いものです。つまり、何も返されません。

トピックのタイトルと冒頭で述べたように。SOAPの経験はありません。ですから、親切な魂が答えるのに時間がかかる場合は、明確で正確な説明が必要であることを覚えておいてください:)

そして、私がこれを理解するのを手伝ってくれる人に感謝します...

4

1 に答える 1

0

WSDLのURLを教えていただけますか? WSDL から php へのコンバーターを試して、SOAP Web サービスを呼び出す方法をより明確に確認することをお勧めします。指定したリクエストとして認証情報を設定するには、Soapheader クラス ( http://php.net/manual/fr/class.soapheader.php ) を使用し、__setSoapheaders ( http://www.php.net/manual ) を呼び出す必要があります。 /fr/soapclient.setsoapHeaders.php、操作を呼び出す前。ヘルプや WSDL から php へのコンバーターが必要な場合はお知らせください。

于 2013-09-05T07:33:00.197 に答える