2017-02-25 125 views
0

我有以下肥皂字符串。如何将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)) 
); 

任何建议如何我可以传递上面的字符串在肥皂请求和获得回应?我是以正确的方式做还是应该有其他方法呢?

回答

0

将参数传递给Soap Web Service的最好和最快捷的方式是使用WSDL到php生成器,因为您不会怀疑如何构造请求。

尝试PackageGenerator项目,您会发现构建请求很容易(除非您故意这么做,否则不会发生任何错误;))。另外,收到的答复很容易处理。每个部分都是一个对象。

相关问题