如何将soap作为字符串传递给php soapclient
问题描述:
我有以下肥皂字符串。如何将soap作为字符串传递给php soapclient
$str = '<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/">';
$str .= '<soapenv:Header/>';
$str .= '<soapenv:Body>';
$str .= '<Username>uname1</Username>';
$str .= '<Password>upassword1</Password>';
$str .= '<RequestType>GetDiamonds</RequestType>';
$str .= '<ClientId>51</ClientId>';
$str .= '<MySoapReq>';
$str .= '<Params>';
$str .= '<Diamond_ID>%18112%</Diamond_ID>';
$str .= '<Diamond_ID>%1625%</Diamond_ID>';
$str .= '<Diamond_ID>%18625%</Diamond_ID>';
$str .= '</Params>';
$str .= '</MySoapReq>';
$str .= '</soapenv:Body>';
$str .= '</soapenv:Envelope>';
我想以下面的方式调用它,但没有得到如何将字符串传递给肥皂请求。
$client = new SoapClient(null, array('location' => 'http://localhost:8080/testsoap',
'uri'=>'http://localhost:8080/testsoap'
));
我也尝试在这里给用户名和密码,但它没有工作,然后我试着下面。
$return = $client->__soapCall("GetDiamonds",
array(new SoapParam($str))
);
任何建议如何我可以传递上面的字符串在肥皂请求和获得回应?我是以正确的方式做还是应该有其他方法呢?
答
将参数传递给Soap Web Service的最好和最快捷的方式是使用WSDL到php生成器,因为您不会怀疑如何构造请求。
尝试PackageGenerator项目,您会发现构建请求很容易(除非您故意这么做,否则不会发生任何错误;))。另外,收到的答复很容易处理。每个部分都是一个对象。