PHP使用SOAP调用API操作示例
发布:smiling 来源: PHP粉丝网 添加日期:2021-11-03 11:41:10 浏览: 评论:0
这篇文章主要介绍了PHP使用SOAP调用API操作,结合实例形式分析了php基于SOAP调用API的常见操作技巧及相关问题解决方法,需要的朋友可以参考下
本文实例讲述了PHP使用SOAP调用API操作,分享给大家供大家参考,具体如下:
- /*图片转换为 base64格式编码*/
- function base64EncodeImage($image_file)
- {
- $base64_image = '';
- $image_info = getimagesize($image_file);
- $image_data = fread(fopen($image_file, 'r'), filesize($image_file));
- //$base64_image = 'data:' . $image_info['mime'] . ';base64,' . chunk_split(base64_encode($image_data));
- $base64_image = chunk_split(base64_encode($image_data));
- return $base64_image;
- }
- $strPhotoFront_base64 = base64EncodeImage("static/img/a.png");
- $strPhotoRear_base64 = base64EncodeImage("static/img/b.png");
- $paras["strPhotoFront"] = $strPhotoFront_base64;
- $paras["strPhotoRear"] = $strPhotoRear_base64;
- $paras["strSecretKey"] = "";
- $wsdl = "";
- $client = new SoapClient($wsdl);
- $soapParas = array($paras);
- $outString = $client->__soapCall("UploadPhotoId", $soapParas);
- $obj = simplexml_load_string($outString->UploadPhotoIdResult->any);
- echo($obj->ExtraInfo);
- echo "<br/>";
- echo($obj->ExtraCode);
- echo "<br/>";
- echo($obj->Code);
- echo "<br/>";
- echo($obj->Message);
注:出现提示:Fatal error: Class 'SoapClient' not found的情况,可参考《PHP Class SoapClient not found解决方法》
附:SOAP-ERROR: Parsing WSDL:Couldn't load from “xxxxxxx” 解决方案
用php的soapclient连接第三方的webservice,是https的,连接报错SOAP-ERROR: Parsing WSDL:Couldn't load from “xxxxxxx”
首先排查 php的soap扩展是否安装
openssl扩展
服务器本身安装openssl
排除第三方对本服务器的IP限制
最后怀疑是https需要ssl验证,而本机没有pem文件
可以通过如下设置,忽略ssl验证
verify_peer:指定是否验证ssl,默认为true
将verify_peer设为false
另外,允许引用外部xml实体
加libxml_disable_entity_loader(false);语句
- libxml_disable_entity_loader(false);
- $opts = array(
- 'ssl' => array(
- 'verify_peer' => false
- ),
- 'https' => array(
- 'curl_verify_ssl_peer' => false,
- 'curl_verify_ssl_host' => false
- )
- );
- $streamContext = stream_context_create($opts);
- $client = new SoapClient("https://urlToSoapWs",
- array(
- 'stream_context' => $streamContext
- ));
禁止引用外部xml实体
libxml_disable_entity_loader(true);
nginx 报错 upstream timed out (110: Connection timed out)解决方案
nginx每隔几个小时就会报下面的错误:
2013/05/18 21:21:36 [error] 11618#0: *324911 upstream timed out (110: Connection timed out) while reading response header from upstream,
client: 42.62.37.56, server: localhost, request: “GET /code-snippet/2747/HTML5-Canvas-usage HTTP/1.0”,
upstream: “fastcgi://127.0.0.1:9002”, host: “outofmemory.cn”, referrer: “http://outofmemory.cn/code-snippet/tagged/canvas“
报这个错误之后,整个服务器就不响应了,但是nginx后面的webpy程序没有任何错误,后端的数据库也很正常,从网上查了很多资料,都是说要修改proxy_read_timeout,proxy_send_timeout和proxy_buffer几个相关设置的值。
如下配置,要放在server配置节之内
- large_client_header_buffers 4 16k;
- client_max_body_size 30m;
- client_body_buffer_size 128k;
- proxy_connect_timeout 300;
- proxy_read_timeout 300;
- proxy_send_timeout 300;
- proxy_buffer_size 64k;
- proxy_buffers 4 32k;
- proxy_busy_buffers_size 64k;
- proxy_temp_file_write_size 64k;
- fastcgi_connect_timeout 300;
- fastcgi_read_timeout 300;
- fastcgi_send_timeout 300;
- fastcgi_buffer_size 64k;
- fastcgi_buffers 4 32k;
- fastcgi_busy_buffers_size 64k;
- fastcgi_temp_file_write_size 64k;
你可以看到上面是proxy_和fastcgi_两种配置,就是说如果你的nginx后面是proxy,就设置proxy相关的配置,如果是fastcgi就设置fastcgi相关的配置。
Tags: SOAP PHP调用API
相关文章
- ·PHP中Soap模块安装与使用例子(2014-06-20)
- ·一个PHP SoapServer实例代码(2014-07-12)
- ·php soap 调用webservice应用测试(2014-07-23)
- ·php中nusoap调用java axis2发布的webservice(2014-08-26)
- ·php中Curl函数常用的两个例子,登陆/soap(2014-08-27)
- ·NuSOAP 调用 Web Service 出现乱码的解决方法(2014-09-04)
- ·php SOAP WSDL简单应用实例(2014-09-08)
- ·php soap扩展开启与__soapCall使用问题(2015-12-24)
- ·php实现通过soap调用.Net的WebService asmx文件(2018-08-03)
- ·PHP使用SOAP扩展实现WebService的方法(2019-10-20)
- ·PHP使用SOAP调用.net的WebService数据(2020-06-18)
- ·PHP实现Soap通讯的方法(2021-04-22)
- ·PHP使用NuSOAP调用Web服务的方法(2021-06-13)
- ·php中curl和soap方式请求服务超时问题的解决(2021-09-25)
- ·PHP中soap用法示例【SoapServer服务端与SoapClient客户端编写】(2021-11-03)
- ·php实现新浪短链接调用API代码(2014-08-26)
推荐文章
热门文章
最新评论文章
- 写给考虑创业的年轻程序员(10)
- PHP新手上路(一)(7)
- 惹恼程序员的十件事(5)
- PHP邮件发送例子,已测试成功(5)
- 致初学者:PHP比ASP优秀的七个理由(4)
- PHP会被淘汰吗?(4)
- PHP新手上路(四)(4)
- 如何去学习PHP?(2)
- 简单入门级php分页代码(2)
- php中邮箱email 电话等格式的验证(2)