本文实例讲述了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相关的配置。
更多关于PHP相关内容感兴趣的读者可查看本站专题:《php文件操作总结》、《PHP数据结构与算法教程》、《php程序设计算法总结》、《PHP数组(Array)操作技巧大全》、《php字符串(string)用法总结》及《php常见数据库操作技巧汇总》
希望本文所述对大家PHP程序设计有所帮助。
免责声明:本站资源来自互联网收集,仅供用于学习和交流,请遵循相关法律法规,本站一切资源不代表本站立场,如有侵权、后门、不妥请联系本站删除!
RTX 5090要首发 性能要翻倍!三星展示GDDR7显存
三星在GTC上展示了专为下一代游戏GPU设计的GDDR7内存。
首次推出的GDDR7内存模块密度为16GB,每个模块容量为2GB。其速度预设为32 Gbps(PAM3),但也可以降至28 Gbps,以提高产量和初始阶段的整体性能和成本效益。
据三星表示,GDDR7内存的能效将提高20%,同时工作电压仅为1.1V,低于标准的1.2V。通过采用更新的封装材料和优化的电路设计,使得在高速运行时的发热量降低,GDDR7的热阻比GDDR6降低了70%。
更新日志
- 陈思安.1990-国语钢琴酒吧5CD【欣代唱片】【WAV+CUE】
- 莫文蔚《莫后年代20周年世纪典藏》3CD[WAV+CUE][2G]
- 张惠妹《我要快乐》华纳[WAV+CUE][1G]
- 罗大佑1982《之乎者也》无法盗版的青春套装版 [WAV+CUE][1G]
- 曾庆瑜1989-款款柔情[日本东芝版][WAV+CUE]
- Scelsi-IntegraledesquatuorsacordesetTrioacordes-QuatuorMolinari(2024)[24bit-WAV]
- 房东的猫2017-房东的猫[科文音像][WAV+CUE]
- 杨乃文.2016-离心力(引进版)【亚神音乐】【WAV+CUE】
- 群星.2024-珠帘玉幕影视原声带【TME】【FLAC分轨】
- 芝麻龙眼.2008-光阴隧道民歌记录3CD【乡城】【WAV+CUE】
- 谭艳《再度重相逢HQII》头版限量[低速原抓WAV+CUE][549M]
- ABC唱片《蔡琴三十周年纪念版》6N纯银镀膜 [WAV+CUE][1.1G]
- 海来阿木《西楼情歌》开盘母带[WAV+CUE][1.1G]
- TheGesualdoSix-QueenofHeartsLamentsandSongsofRegretforQueensTerrestrialandCele
- 王建杰2011-荣华富贵[喜玛拉雅][WAV+CUE]