我有以下肥皂串。
$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>';
我试图按照以下方式调用它,但没有得到如何将上面的字符串传递给soap请求。
$client = new SoapClient(null, array('location' => 'http://localhost:8080/testsoap',
'uri'=>'http://localhost:8080/testsoap'
));
我也试过在这里提供用户名和密码,但它没有用,然后我试着跟随。
$return = $client->__soapCall("GetDiamonds",
array(new SoapParam($str))
);
有关如何在soap请求中传递上述字符串并获得响应的任何建议吗?我是以正确的方式做的还是应该采用其他方法呢?
答案 0 :(得分:0)
将参数传递给Soap Web服务的最好和最快捷的方法是使用WSDL到php生成器,因为您不知道如何构造请求。
尝试PackageGenerator项目,您会发现构建请求很容易(除非您故意这样做,否则不会出现任何错误;))。此外,收到的响应很容易处理。每个部分都是一个对象。