我厌倦了尝试用SOAP发送请求.这是我的xml
200.125.145.10
1
someUser
someDesc
1
someDesc
somePass
someUser
这个函数发送带有命名空间的标题,但是有多个…我必须发送它们全部?
private function __getHeaders() {
$ns = 'http://schemas.xmlsoap.org/soap/envelope/'; //Namespace of the WS.
$ip = $_SERVER['REMOTE_ADDR'];
//Body of the Soap Header.
$headerbody = array('ClientIp' => $ip,'CompanyId' => 1,'UserName' => 'someUser'
);
//Create Soap Header.
$header = new SOAPHeader($ns,'InfoTag',$headerbody);
return $header;
}
public function prepareWs(){
$wsdl="the web service";
$client = new SoapClient($wsdl,array('trace' => true));
//Set the Headers of Soap Client.
$header = $this->__getHeaders();
$client->__setSoapHeaders($header);
我尝试发送这个主体,我检查了肥皂故障的异常,但消息只返回“错误请求NULL NULL NULL”.
$params = new stdClass();
$params = new SoapVar("
someDesc
1
someName
somePass
someUser
",XSD_ANYXML);
$response = $client->Login($params);
}
使用CURL,我可以发送此XML并收到XML响应,但是使用SOAPClient我无法发送此请求.
我希望有人可以帮助我,谢谢.
这是我用firebug看到的代码,我唯一得到的是“糟糕的请求”.当我使用__getLastRequest()时,我看到了同样的……
我想不应该正确发送标题,但__setSoapHeaders函数返回true.
这是输出:
ClientIp
127.0.0.1
CompanyId
1
UserName
someUser
someDesc
1
someName
somePass
someUser