Tôi đang cố truy cập WebService bằng nuSOAP (vì tôi bị ràng buộc với PHP4 ở đây) sử dụng nhiều hơn 1 vùng tên trong thư. Điều đó có thể không?Cách sử dụng nuSOAP cho các thư có nhiều không gian tên
Một ví dụ yêu cầu nhắn sẽ trông như thế này:
<soapenv:Envelope ...
xmlns:ns1="http://domain.tld/namespace1"
xmlns:ns2="http://domain.tld/namespace2">
<soapenv:Header/>
<soapenv:Body>
<ns1:myOperation>
<ns2:Person>
<ns2:Firstname>..</ns2:Firstname>
..
</ns2:Person>
<ns1:Attribute>..</ns1:Attribute>
</ns1:myOperation>
</soapenv:Body>
</soapenv:Envelope>
Tôi cố gắng để sau:
$client = new nusoap_client("my.wsdl", true);
$params = array(
'Person' => array(
'FirstName' => 'Thomas',
..
),
'Attribute' => 'foo'
);
$result = $client->call('myOperation', $params, '', 'soapAction');
với hy vọng rằng nuSOAP sẽ cố gắng để phù hợp với các tên này để các không gian tên chính xác và các nút. Sau đó, tôi cố gắng sử dụng soapval() để tạo ra các yếu tố và không gian tên của họ - nhưng nếu tôi gọi một hoạt động, nuSOAP tạo theo yêu cầu sau:
<SOAP-ENV:Envelope ...>
<SOAP-ENV:Body>
<queryCCApplicationDataRequest xmlns="http://domain.tld/namespace1"/>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>
Vì vậy, họ gặp khó khăn trong giai đoạn "phù hợp".
Tôi vừa thử giải pháp của bạn và nó hoạt động .... cảm ơn người đàn ông. –