一区二区三区在线-一区二区三区亚洲视频-一区二区三区亚洲-一区二区三区午夜-一区二区三区四区在线视频-一区二区三区四区在线免费观看

服務器之家:專注于服務器技術及軟件下載分享
分類導航

PHP教程|ASP.NET教程|Java教程|ASP教程|編程技術|正則表達式|C/C++|IOS|C#|Swift|Android|VB|R語言|JavaScript|易語言|vb.net|

服務器之家 - 編程語言 - PHP教程 - PHP使用SOAP調用API操作示例

PHP使用SOAP調用API操作示例

2019-07-09 16:52ChouCat PHP教程

這篇文章主要介紹了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_timeoutproxy_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程序設計有所幫助。

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 91啪在线观看国产在线 | 久久免费看少妇高潮A片特爽 | 骚虎网站在线观看 | 免费一区二区视频 | 好姑娘在线完整版视频 | 免费黄色网站视频 | 午夜久久久久久亚洲国产精品 | 亚洲国产一区二区三区青草影视 | 草莓视频幸福宝 | 91精品免费观看老司机 | 星空无限传媒xk8129 | 免费永久视频 | 惩罚狠h调教灌满 | 日噜噜| 亚洲一区二区三区不卡在线播放 | 成人精品视频 成人影院 | 亚洲欧美成人中文在线网站 | 国产精品女同久久免费观看 | 亚洲精品乱码久久久久久蜜桃图片 | 成人福利免费在线观看 | asian4you裸模 | 亚欧毛片基地国产毛片基地 | 蜜桃影像传媒破解版 | 91天堂影院 | 帅小伙和警官同性3p | 亚洲aⅴ男人的天堂在线观看 | sxx免费看观看美女 sss亚洲国产欧美一区二区 | 亚洲精品中文字幕久久久久久 | 日本在线亚州精品视频在线 | 国产大胆歌舞团网站 | 91无毒不卡| les在宿舍吃她奶 | 欧美精品v日韩精品v国产精品 | 亚洲成人99| 亚洲精品国产乱码AV在线观看 | 玩50岁四川熟女大白屁股直播 | 99热综合在线 | 免费观看在线观看 | 波多野结衣在线免费观看 | 九九九精品视频 | 精品视频在线免费播放 |