处理WebService asmx的经验
2024-07-23 21:51:03 210人阅读
项目的需求,需要和一个.net系统进行数据交换,合作方提供了一个WebService接口。这个与一般的PHP POST或GET传值再查库拿数据的思路有点不一样,需要用到SOAP模块,处理方法也很简单,就是有一些需要注意的事情。大都会娱乐城
首先确认你的PHP.ini开启了.SOAP,就是 extension=php_soap.dll 这前面的分号去咯。
代码很简单:
03 | $client = new SoapClient( ‘http://www.nowamagic.net/SearchService.asmx?WSDL‘ ); |
05 | $client ->soap_defencoding = ‘utf-8‘ ; |
06 | $client ->decode_utf8 = false; |
07 | $client ->xml_encoding = ‘utf-8‘ ; |
09 | $param = array ( ‘param1‘ => ‘01‘ , ‘param2‘ => ‘02‘ ); |
15 | $result = $client ->__Call( "GetArticle" , array ( $param )); |
17 | if ( is_soap_fault ( $result )) |
19 | trigger_error( "SOAP Fault: (faultcode: {$result->faultcode}, faultstring: {$result->faultstring})" , E_USER_ERROR); |
23 | $data = $result ->GetArticleResult; |
需要注意的一点是,参数是数组外再包一层数组,就是 array( array() )
附SOAP接口的一些参数:
以下是 SOAP 1.2 请求和响应示例。所显示的占位符需替换为实际值。
01 | POST /SearchService.asmx HTTP/1.1 |
03 | Content-Type: text/xml; charset=utf-8 |
05 | SOAPAction: "http://tempuri.org/GetTrafficViolationInfo" |
07 | <? xml version = "1.0" encoding = "utf-8" ?> |
08 | < soap:Envelope xmlns:xsi = "http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd = "http://www.w3.org/2001/XMLSchema" xmlns:soap = "http://schemas.xmlsoap.org/soap/envelope/" > |
10 | < GetArticle xmlns = "http://tempuri.org/" > |
11 | < param1 >string</ param1 > |
12 | < param2 >string</ param2 > |
02 | Content-Type: text/xml; charset=utf-8 |
05 | <? xml version = "1.0" encoding = "utf-8" ?> |
06 | < soap:Envelope xmlns:xsi = "http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd = "http://www.w3.org/2001/XMLSchema" xmlns:soap = "http://schemas.xmlsoap.org/soap/envelope/" > |
08 | < GetArticleResponse xmlns = "http://tempuri.org/" > |
09 | < GetArticleResult >string</ GetArticleResult > |
处理WebService asmx的经验
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉:
投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。