通过PHP访问SOAP

时间:2015-03-02 10:24:51

标签: php xml web-services soap wsdl

我有一个网站需要向另一台服务器发送请求并检索一些数据。我对SOAP一无所知,所以我需要专家帮助。

这是第二台服务器给我的数据。     我不知道从哪里开始以及如何做到这一点。所以任何帮助都表示赞赏。     你能给我一个PHP代码的工作示例,它可以使用这段代码。

SOAP 1.1

以下是SOAP 1.1请求和响应示例。显示的占位符需要替换为实际值。

POST /Service1.asmx HTTP/1.1
Host: puanreport.retail.az
Content-Type: text/xml; charset=utf-8
Content-Length: length
SOAPAction: "http://tempuri.org/_find"

<?xml version="1.0" encoding="utf-8"?>
<soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
  <soap:Body>
    <_find xmlns="http://tempuri.org/">
      <par>string</par>
    </_find>
  </soap:Body>
</soap:Envelope>
HTTP/1.1 200 OK
Content-Type: text/xml; charset=utf-8
Content-Length: length

<?xml version="1.0" encoding="utf-8"?>
<soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
  <soap:Body>
    <_findResponse xmlns="http://tempuri.org/">
      <_findResult>
        <bon>
          <Cari_Kod>string</Cari_Kod>
          <Puan>string</Puan>
        </bon>
        <bon>
          <Cari_Kod>string</Cari_Kod>
          <Puan>string</Puan>
        </bon>
      </_findResult>
    </_findResponse>
  </soap:Body>
</soap:Envelope>

1 个答案:

答案 0 :(得分:0)

最简单的方法是:

$client = new SoapClient('http://www.webservicex.net/geoipservice.asmx?WSDL');
$result = $client->GetGeoIP(array('IPAddress' => '8.8.8.8'));

print_r($result);

这会给你:

stdClass Object
(
    [GetGeoIPResult] => stdClass Object
        (
            [ReturnCode] => 1
            [IP] => 8.8.8.8
            [ReturnCodeDetails] => Success
            [CountryName] => United States
            [CountryCode] => USA
        )

)

现在您只需通过调用

即可访问这些值
$country = $result->GetGeoIPResult->CountryName;

已经回答here

php.net soap class