内容 |
在一些接口的设计中有时用到了SOAP方式的请求,比如顺丰BSP的接口。 我尝试不同方式的POST方式请求,要么完全请求不到东西,要么接收到乱码,均以失败告终。 针对顺丰接口的SOAP请求的核心代码分享如下: 代码如下: > /** * 发送soap请求 */ private function _soap() { $client = new SoapClient($this->serviceUrl); $info = new stdClass(); $info->arg0 = $this->xml; $param = array($info); $response = $client->__call(“sfexpressService”,$param); return $response->return ; } /** * 拼接出请求的xml */ public function createXml() { $xml = ‘<Request service=”RouteService” lang=”zh-CN”> <Head>’.$this->user.’,’.$this->passWord.’</Head> <Body> <RouteRequest tracking_type=”1″ method_type=”1″ tracking_number=”‘.$this->invoice_no.’” /> </Body> </Request>’; $this->xml = $xml; } 提示: 1.$this->serviceUrl 顺丰分配的BSP请求地址,注意是?wsdl的地址 2.$this->user,$this->passWord 即是顺丰分配的ID和校验码 3.返回的return是一个XML的String,你可能需要simplexml_load_string来解析。 |