• 企业400电话
  • 微网小程序
  • AI电话机器人
  • 电商代运营
  • 全 部 栏 目

    企业400电话 网络优化推广 AI电话机器人 呼叫中心 网站建设 商标✡知产 微网小程序 电商运营 彩铃•短信 增值拓展业务
    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相关内容感兴趣的读者可查看本站专题:《php文件操作总结》、《PHP数据结构与算法教程》、《php程序设计算法总结》、《PHP数组(Array)操作技巧大全》、《php字符串(string)用法总结》及《php常见数据库操作技巧汇总》

    希望本文所述对大家PHP程序设计有所帮助。

    您可能感兴趣的文章:
    • PHP程序员简单的开展服务治理架构操作详解(二)
    • PHP程序员简单的开展服务治理架构操作详解(一)
    • PHP中soap用法示例【SoapServer服务端与SoapClient客户端编写】
    • php中curl和soap方式请求服务超时问题的解决
    • PHP使用NuSOAP调用Web服务的方法
    • PHP中soap的用法实例
    • PHP使用SOAP扩展实现WebService的方法
    • PHP使用SOAP调用.net的WebService数据
    • PHP Class SoapClient not found解决方法
    • PHP实现Soap通讯的方法
    • PHP程序员简单的开展服务治理架构操作详解(三)
    上一篇:详解PHP实现支付宝小程序用户授权的工具类
    下一篇:PHP中soap用法示例【SoapServer服务端与SoapClient客户端编写】
  • 相关文章
  • 

    © 2016-2020 巨人网络通讯

    时间:9:00-21:00 (节假日不休)

    地址:江苏信息产业基地11号楼四层

    《增值电信业务经营许可证》 苏B2-20120278

    PHP使用SOAP调用API操作示例 PHP,使用,SOAP,调用,API,操作,