欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

PHP使用SOAP調(diào)用API操作示例

 更新時(shí)間:2018年12月25日 09:45:29   作者:ChouCat  
這篇文章主要介紹了PHP使用SOAP調(diào)用API操作,結(jié)合實(shí)例形式分析了php基于SOAP調(diào)用API的常見(jiàn)操作技巧及相關(guān)問(wèn)題解決方法,需要的朋友可以參考下

本文實(shí)例講述了PHP使用SOAP調(diào)用API操作。分享給大家供大家參考,具體如下:

/*圖片轉(zhuǎn)換為 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);

注:出現(xiàn)提示:Fatal error: Class 'SoapClient' not found的情況,可參考《PHP Class SoapClient not found解決方法

附:SOAP-ERROR: Parsing WSDL:Couldn't load from “xxxxxxx” 解決方案

用php的soapclient連接第三方的webservice,是https的,連接報(bào)錯(cuò)SOAP-ERROR: Parsing WSDL:Couldn't load from “xxxxxxx”

首先排查 php的soap擴(kuò)展是否安裝

openssl擴(kuò)展

服務(wù)器本身安裝openssl

排除第三方對(duì)本服務(wù)器的IP限制

最后懷疑是https需要ssl驗(yàn)證,而本機(jī)沒(méi)有pem文件

可以通過(guò)如下設(shè)置,忽略ssl驗(yàn)證

verify_peer:指定是否驗(yàn)證ssl,默認(rèn)為true

將verify_peer設(shè)為false

另外,允許引用外部xml實(shí)體

libxml_disable_entity_loader(false);語(yǔ)句

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實(shí)體

libxml_disable_entity_loader(true);

nginx 報(bào)錯(cuò) upstream timed out (110: Connection timed out)解決方案

nginx每隔幾個(gè)小時(shí)就會(huì)報(bào)下面的錯(cuò)誤:

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“

報(bào)這個(gè)錯(cuò)誤之后,整個(gè)服務(wù)器就不響應(yīng)了,但是nginx后面的webpy程序沒(méi)有任何錯(cuò)誤,后端的數(shù)據(jù)庫(kù)也很正常,從網(wǎng)上查了很多資料,都是說(shuō)要修改proxy_read_timeout,proxy_send_timeoutproxy_buffer幾個(gè)相關(guān)設(shè)置的值。

如下配置,要放在server配置節(jié)之內(nèi)

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_兩種配置,就是說(shuō)如果你的nginx后面是proxy,就設(shè)置proxy相關(guān)的配置,如果是fastcgi就設(shè)置fastcgi相關(guān)的配置。

更多關(guān)于PHP相關(guān)內(nèi)容感興趣的讀者可查看本站專題:《php文件操作總結(jié)》、《PHP數(shù)據(jù)結(jié)構(gòu)與算法教程》、《php程序設(shè)計(jì)算法總結(jié)》、《PHP數(shù)組(Array)操作技巧大全》、《php字符串(string)用法總結(jié)》及《php常見(jiàn)數(shù)據(jù)庫(kù)操作技巧匯總

希望本文所述對(duì)大家PHP程序設(shè)計(jì)有所幫助。

相關(guān)文章

  • PHP中用接口、抽象類、普通基類實(shí)現(xiàn)“面向接口編程”與“耦合方法”簡(jiǎn)述

    PHP中用接口、抽象類、普通基類實(shí)現(xiàn)“面向接口編程”與“耦合方法”簡(jiǎn)述

    邊學(xué)邊做的,為方便自己翻閱而發(fā)布,更為得到高人指點(diǎn)而發(fā)布,歡迎高手指點(diǎn)
    2011-03-03
  • php跨站攻擊實(shí)例分析

    php跨站攻擊實(shí)例分析

    這篇文章主要介紹了php跨站攻擊的原理與防范技巧,以具體實(shí)例對(duì)php跨站攻擊進(jìn)行了較為詳細(xì)的分析,是非常實(shí)用的技巧,需要的朋友可以參考下
    2014-10-10
  • PHP is_numeric()函數(shù)用法詳解

    PHP is_numeric()函數(shù)用法詳解

    is_numeric()函數(shù)是PHP中的內(nèi)置函數(shù),用于檢查傳入函數(shù)中作為參數(shù)的變量是數(shù)字還是數(shù)字字符串,該函數(shù)返回一個(gè)布爾值,本文就給大家講講PHP is_numeric()函數(shù)使用方法,需要的朋友可以參考下
    2023-07-07
  • php+jQuery ajax實(shí)現(xiàn)的實(shí)時(shí)刷新顯示數(shù)據(jù)功能示例

    php+jQuery ajax實(shí)現(xiàn)的實(shí)時(shí)刷新顯示數(shù)據(jù)功能示例

    這篇文章主要介紹了php+jQuery ajax實(shí)現(xiàn)的實(shí)時(shí)刷新顯示數(shù)據(jù)功能,結(jié)合實(shí)例形式分析了php結(jié)合jQuery ajax實(shí)時(shí)刷新讀取顯示數(shù)據(jù)庫(kù)數(shù)據(jù)相關(guān)操作技巧,需要的朋友可以參考下
    2019-09-09
  • 詳解Laravel制作API接口

    詳解Laravel制作API接口

    API(Application Programming Interface,應(yīng)用程序編程接口)是一些預(yù)先定義的函數(shù),目的是提供應(yīng)用程序與開(kāi)發(fā)人員基于某軟件或硬件得以訪問(wèn)一組例程的能力,而又無(wú)需訪問(wèn)源碼,或理解內(nèi)部工作機(jī)制的細(xì)節(jié)。本文將詳細(xì)介紹Laravel制作API接口。
    2021-05-05
  • PHP中CURL方法curl_setopt()函數(shù)的參數(shù)分享

    PHP中CURL方法curl_setopt()函數(shù)的參數(shù)分享

    PHP中CURL方法curl_setopt()函數(shù)的使用介紹,需要深入了解curl_setopt的朋友可以參考下
    2013-01-01
  • php讀取csc文件并輸出

    php讀取csc文件并輸出

    本文給大家分享的是php讀取csc文件并輸出的方法,方法一用到的是fgetcsv函數(shù),方法二用到是fopen函數(shù),有需要的小伙伴可以參考下。
    2015-05-05
  • PHP云打印類完整示例

    PHP云打印類完整示例

    這篇文章主要介紹了PHP云打印類,結(jié)合完整實(shí)例形式分析了php實(shí)現(xiàn)網(wǎng)絡(luò)打印數(shù)據(jù)的搜集與隊(duì)列排序整理及數(shù)據(jù)打印等功能,具有一定參考借鑒價(jià)值,需要的朋友可以參考下
    2016-10-10
  • php從數(shù)組中隨機(jī)抽取一些元素的代碼

    php從數(shù)組中隨機(jī)抽取一些元素的代碼

    php從數(shù)組中隨機(jī)抽取一些元素的代碼,需要的朋友可以參考下
    2012-11-11
  • thinkphp Tp6經(jīng)常報(bào)錯(cuò) Call to undefined method錯(cuò)誤的解決方法

    thinkphp Tp6經(jīng)常報(bào)錯(cuò) Call to undefined 

    在使用Tp6框架時(shí)經(jīng)常遇到"Call to undefined method"的錯(cuò)誤,這里就為大家分享一下具體的使用方法,需要的朋友可以參考下
    2023-08-08

最新評(píng)論