初めての方へ
このテキストはクライアントの使用法についてのみ説明することを目的としているため、まず、Xmethods がいくつかの興味深いオプションを提供するいくつかのサーバーを見つける必要があります。 Address to Country サービスの機能は非常に単純で、IP アドレスを指定して国名を返すというものです。
最初にクライアント インスタンスを作成します:
$client = new SoapClient
('http://www.ecubicle.net/
iptocountry.asmx?wsdl',
array ('trace' => true));
trace を true に設定すると、後でプログラムのデバッグ段階で __getLastRequest、__getLastRequestHeaders、__getLastResponse、__getLastResponseHeaders などのメソッドを使用して情報を取得できます。この情報は有用であり、プログラムの使用時にこのパラメータを使用する必要はありません。トレースパラメータに加えて、HTTP 認証機能を実装するためにログインパラメータとパスワードパラメータを設定することもできます。また、多くのパラメータがあるため、公式ドキュメントを参照してください。
前の $client インスタンスを作成した後、まずサービスによってどのようなメソッドが提供されているかを確認できます:
print_r($client->__getFunctions());
サービス メソッドの情報の詳細は次のようになります。 wsdl から自分でチェックして、PHP の組み込み SOAP が実際のメソッド $ip='64.156.132.140′ を呼び出す方法を見てみましょう:
<ol class="dp-xml"> <li class="alt"><span><span>$</span><span class="attribute">result</span><span> = $client-</span><span class="tag">></span><span>__soapCall<br>(’FindCountryAsString’, array<br>(’FindCountryAsString’ =</span><span class="tag">></span><span> <br>array(’V4IPAddress’ =</span><span class="tag">></span><span> $ip))); </span></span></li> <li> <span>print_r($result-</span><span class="tag">><br></span><span>FindCountryAsStringResult); </span> </li> </ol>
は次のように呼び出すこともできます:
<ol class="dp-xml"> <li class="alt"><span><span>$</span><span class="attribute">result</span><span> = $client-</span><span class="tag">><br></span><span>FindCountryAsString(array<br>(’V4IPAddress’ =</span><span class="tag">></span><span> $ip)); </span></span></li> <li> <span>print_r($result-</span><span class="tag">><br></span><span>FindCountryAsStringResult); </span> </li> </ol>
PHP が構築-in SOAP は次のように呼び出すこともできます:
<ol class="dp-xml"> <li class="alt"><span><span>$</span><span class="attribute">params</span><span> = </span><span class="attribute-value">new</span><span> SoapParam(array(’V4IPAddress’ <br>=</span><span class="tag">></span><span> $ip), ‘FindCountryAsStringSoapIn’); </span></span></li> <li> <span>$</span><span class="attribute">result</span><span> = $client-</span><span class="tag">></span><span>__soapCall<br>(’FindCountryAsString’, array($params)); </span> </li> <li class="alt"> <span>print_r($result-</span><span class="tag">></span><span>FindCountryAsStringResult); </span> </li> </ol>
次のように呼び出すこともできます:
<ol class="dp-xml"> <li class="alt"><span><span>$</span><span class="attribute">params</span><span> = </span><span class="attribute-value">new</span><span> SoapParam(array(’V4IPAddress’ <br>=</span><span class="tag">></span><span> $ip), ‘FindCountryAsStringSoapIn’); </span></span></li> <li> <span>$</span><span class="attribute">result</span><span> = $client-</span><span class="tag">></span><span>FindCountryAsString($params); </span> </li> <li class="alt"> <span>print_r($result-</span><span class="tag">></span><span>FindCountryAsStringResult); </span> </li> </ol>
PHP の組み込み SOAP を使用する場合、パラメーターがどのように渡されるかを説明するのは少し難しいです。 wsdlの記述ドキュメントを勉強してますが、wsdlを眺めているだけでは本当につまらないので、まずはwsdlをざっと見て、そのあと感覚でパラメータを渡してみたり、トレースデバッグに協力したりするのが一般的だと思います。数回試しても正しい送信方法を見つけることができます。それでも機能しない場合は、__getLastRequest、__getLastRequestHeaders、およびその他のメソッドによって提供される情報を使用して、説明ドキュメントを注意深く調べてください。