我是肥皂的初学者,我如何发送肥皂请求?我在谷歌搜索并尝试了不同的方法,但遗憾的是它对我不起作用。
我非常感谢你的帮助。
这是我应该发送的示例请求:
POST /Universal/WebService.asmx HTTP/1.1
Host: www.sample.com
Content-Type: text/xml;charset="utf-8"
Content-Length: length
SOAPAction: https://www.sample.com/Universal/WebService.asmx/Request
<?xml version=\"1.0\" encoding=\"utf-8\"?>
<soap:Envelope xmlns:xsi="http://wwww.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
<soap:Body>
<Request xmlns="https://www.sample.com/Universal/WebService.asmx">
<ID>CPHK01</ID>
<UID>TEST</UID>
<PWD>TEST</PWD>
<target_mpn>09183530925</target_mpn>
<amount>115</amount>
<ref_no>20060830143030112</ref_no>
<source_mpn>67720014</source_mpn>
</Request>
</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://wwww.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
<soap:Body>
<RequestResponse xmlns="https://www.sample.com/Universal/WebService.asmx">
<RequestResult>
<Ref_no>20060830143030112</Ref_no>
<StatusCode>101</StatusCode>
</RequestResult>
</RequestResponse>
</soap:Body>
</soap:Envelope>
答案 0 :(得分:3)
PHP有一个本地SoapClient
类。构造函数将WSDL作为参数。这比cURL更受欢迎,因为SoapClient处理所有SOAP复杂性,它允许您处理本机对象和数组,并且无需手动构建SOAP信封和XML。
try {
$client = new SoapClient('https://www.sample.com/Universal/WebService.asmx?wsdl');
$response = $client->Request(array(
'ID' => 'xxxx',
'UID' => 'xxxx',
'PWD' => 'xxxx',
'target_mpn' => 'xxxx',
'amount' => 'xxxx',
'ref_no' => 'xxxx',
'source_mpn' => 'xxxx'
));
print_r($response); // view the full response to see what is returned
// or get the response properties:
echo $response->RequestResult->Ref_no;
echo $response->RequestResult->StatusCode;
} catch (Exception $e) {
echo $e->getMessage();
}