Как сделать SoapClient на php

Я новичок в soapclient, я пытался сделать некоторые исследования в Интернете, а также пробовал кодирование на мыле, но, похоже, это все еще не работает для меня, просто блуждающий кто-нибудь здесь может указать и, возможно, дать мне пример, как я могу фактически использовать soapclint, чтобы получить обратную связь от следующего веб-сервера?

POST /webservices/tempconvert.asmx HTTP/1.1 Host: www.w3schools.com Content-Type: text/xml; charset=utf-8 Content-Length: length SOAPAction: "http://tempuri.org/CelsiusToFahrenheit" <?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> <CelsiusToFahrenheit xmlns="http://tempuri.org/"> <Celsius>string</Celsius> </CelsiusToFahrenheit> </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> <CelsiusToFahrenheitResponse xmlns="http://tempuri.org/"> <CelsiusToFahrenheitResult>string</CelsiusToFahrenheitResult> </CelsiusToFahrenheitResponse> </soap:Body> </soap:Envelope> <?php $url = "http://www.w3schools.com/webservices/tempconvert.asmx?WSDL"; $client = new SoapClient($url); ?> 

Что я должен сделать для следующих шагов, чтобы я мог ответить?

Related of "Как сделать SoapClient на php"

Сначала вам необходимо SoapClient класс SoapClient , как и вы:

 $url = "http://www.w3schools.com/webservices/tempconvert.asmx?WSDL"; $client = new SoapClient($url); 

Затем вы должны вызвать метод, который хотите использовать, – имена методов можно найти в WSDL.

Например, мы могли бы вызвать метод, называемый CelsiusToFahrenheit , в этом WebService:

 $result = $client->CelsiusToFahrenheit( /* PARAMETERS HERE */ ); 

Теперь проблема состоит в том, чтобы знать, какие параметры должны быть переданы ; и как…

Если вы посмотрите на WSDL, вы увидите эту часть:

 <s:element name="CelsiusToFahrenheit"> <s:complexType> <s:sequence> <s:element minOccurs="0" maxOccurs="1" name="Celsius" type="s:string" /> </s:sequence> </s:complexType> </s:element> 

Это указывает, что этим методам должен быть передан массив, содержащий 1 элемент, который будет иметь « Celsius » в качестве ключа, и значение для преобразования в качестве значения.

Это означает, что вам придется использовать эту часть кода PHP:

 $result = $client->CelsiusToFahrenheit(array('Celsius' => '10')); 

Выполнение этого вызова и сброс результата:

 var_dump($result); 

Получает такой вид вывода:

 object(stdClass)#2 (1) { ["CelsiusToFahrenheitResult"]=> string(2) "50" } 

Это означает, что вы должны использовать это:

 echo $result->CelsiusToFahrenheitResult . "\n"; 

Чтобы получить полученное значение :

 50 

Примечание: структура этого результата также может быть найдена в файле WSDL – см. CelsiusToFahrenheitResponse .