本文实例讲述了PHP实现Soap通讯的方法。分享给大家供大家参考。具体实现方法如下:
<?php function HttpSoap($server, $port, $url, $namespace, $action, $data) { $fp = @fsockopen($server, $port); if (!$fp) { return FALSE; } else { $soapData = ConstructData($namespace, $action, $data); $length = strlen($soapData); $out = "POST $url HTTP/1.1\r\n"; $out .= "Host: $server\r\n"; $out .= "Content-Type: text/xml; charset=utf-8\r\n"; $out .= "Content-Length: $length\r\n"; $out .= "SOAPAction: \"$namespace$action\"\r\n\r\n"; $out .= $soapData; $out .= "\r\n\r\n"; fputs($fp, $out); stream_set_timeout($fp, 2); $header = ""; while($line = trim(fgets($fp))) { $header .= $line."\n"; } $dataPos = strpos($header, "Content-Length: ") + 16; $dataEnd = strpos($header, "\n", $dataPos); $dataLength = substr($header, $dataPos, $dataEnd - $dataPos); $data = ""; if($dataLength > 0) { $data = fread($fp, $dataLength); } fclose($fp); if(strlen($data) != $dataLength || $dataLength <= 0) { return FALSE; } return $data; } } function ConstructData($namespace, $action, $data) { $soapData = " <?xml version="1.0\" encoding=\"utf-8\"?> \r\n"; $soapData .= "<soap:Envelope xmlns:xsi=\http://www.w3.org/2001/XMLSchema-instance\ xmlns:xsd=\"http://www.w3.org/2001/XMLSchema\" xmlns:soap=\"\r\n'>http://schemas.xmlsoap.org/soap/envelope/\">\r\n"; $soapData .= " <soap:Body>\r\n"; $soapData .= " <$action xmlns=\"$namespace\">\r\n"; foreach($data as $name => $value) { $name = iconv("GBK","UTF-8",$name); $value= iconv("GBK","UTF-8",$value); $soapData .= " <$name>$value</$name>\r\n"; } $soapData .= " </$action>\r\n"; $soapData .= " </soap:Body>\r\n"; $soapData .= "</soap:Envelope>"; return $soapData; } <? $data=array( 'user'=>'测试', //如果需要输入二进制数据请采用BASE64编码 'pass'=>'test' ); echo HttpSoap('sample.anyhost.com', 80, '/sampleSoap.asmx', 'http://tempuri.org/', 'logIn', $data); ?>
希望本文所述对大家的PHP程序设计有所帮助。
本文向大家介绍PHP使用SOAP扩展实现WebService的方法,包括了PHP使用SOAP扩展实现WebService的方法的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了PHP使用SOAP扩展实现WebService的方法。分享给大家供大家参考,具体如下: 最近在一个PHP项目中对接外部接口涉及到WebService,搜索引擎上相关文章不是很多,找到的大都是引用一个号称很强大的开源软件
本文向大家介绍PHP实现连接设备、通讯和发送命令的方法,包括了PHP实现连接设备、通讯和发送命令的方法的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了PHP实现连接设备、通讯和发送命令的方法。分享给大家供大家参考。具体如下: 开发的BS架构的软件(PHP),需要跟设备进行通讯,在此记录一下,欢迎各位指正: 1. 采用php socket技术使用TCP/IP连接设备 参数$service_p
本文向大家介绍php实现通过soap调用.Net的WebService asmx文件,包括了php实现通过soap调用.Net的WebService asmx文件的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了php实现通过soap调用.Net的WebService asmx文件。分享给大家供大家参考,具体如下: 最近,帮一个同行测试用.net写的WebService接口,C#调用通过,现
本文向大家介绍php实现与erlang的二进制通讯实例解析,包括了php实现与erlang的二进制通讯实例解析的使用技巧和注意事项,需要的朋友参考一下 一般来说网络通讯常用的方式有2种:文本通讯和二进制通讯。php与erlang之间实现文本通讯比较简单,这里就不做讨论,本文主要讨论的是php与erlang实现二进制通讯的实现方法。实现步骤如下: erlang端代码: php端代码: 运行正常的情况
本文向大家介绍Python采用socket模拟TCP通讯的实现方法,包括了Python采用socket模拟TCP通讯的实现方法的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了Python采用socket模拟TCP通讯的实现方法。分享给大家供大家参考。具体实现方法如下: 对于TCP server端的创建而言,分为如下几个步骤: 创建socket对象(socket):其中两个参数分别为Addr
本文向大家介绍PHP中soap的用法实例,包括了PHP中soap的用法实例的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了PHP中soap的用法,分享给大家供大家参考。具体用法分析如下: PHP 使用soap有两种方式。 一、用wsdl文件 服务器端: 资源描述文件,可以用工具(zend studio)生成。其实就是一个xml文件。 客户端调用: 二、不用wsdl文件 服务器端: 客户端: