作为第三方开发商,经常会需要调用平台接口,远程调用,就要用到curl,其实质就是叫调用的方法与用到的参数以http post的方式发送至平台服务器。

简单的例子:

$url 'http://';  //调用接口的平台服务地址

$post_string array('a'=>'b'); 

$ch = curl_init();

curl_setopt($ch, CURLOPT_URL, $url);

curl_setopt($ch, CURLOPT_POSTFIELDS, $post_string);

curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);

curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 10);

curl_setopt($ch, CURLOPT_TIMEOUT, 30);

$result = curl_exec($ch); 

curl_close($ch);

return $result;

=======================================

//请求数据到短信接口,检查环境是否 开启 curl init。
 function post($curlPost,$url){
            $curl = curl_init();
            curl_setopt($curl, CURLOPT_URL, $url);
            curl_setopt($curl, CURLOPT_POSTFIELDS, http_build_query($curlPost));
            curl_setopt($curl, CURLOPT_HEADER, false);
            curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
            curl_setopt($curl, CURLOPT_NOBODY, true);
            curl_setopt($curl, CURLOPT_POST, true);
            $return_str = curl_exec($curl);
            curl_close($curl);
            echo $return_str;
    }

   其实CURLOPT_POSTFIELDS的这个设置中,亦可以直接发送数组的,但是这样做的后果是严重增加的请求的时间,耗时大约在2秒多,同样的操作用socket方式操作则正常,在毫秒级别。

   若将此处:curl_setopt($ch, CURLOPT_POSTFIELDS, $post_string);

   修改为:curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($post_data));

则执行时间恢复正常

PS:

http_build_query — 生成 URL-encode 之后的请求字符串

说明

string http_build_query ( array $formdata [, string $numeric_prefix ] )

使用给出的关联(或下标)数组生成一个经过 URL-encode 的请求字符串。参数 formdata 可以是数组或包含属性的对象。一个 formdata 数组可以是简单的一维结构,也可以是由数组组成的数组(其依次可以包含其它数组)。如果在基础数组中使用了数字下标同时给出了 numeric_prefix 参数,此参数值将会作为基础数组中的数字下标元素的前缀。这是为了让 PHP 或其它 CGI 程序在稍后对数据进行解码时获取合法的变量名。

    Note

    用 arg_separator.output 来分隔参数。

Example #1 http_build_query() 使用示例

<?php

$data array('foo'=>'bar',

              'baz'=>'boom',

              'cow'=>'milk',

              'php'=>'hypertext processor'

             );

echo http_build_query($data); // foo=bar&baz=boom&cow=milk&php=hypertext+processor

?>

Example #2 http_build_query() 使用数字下标的元素

<?php

$data array('foo''bar''baz''boom''cow' => 'milk''php' =>'hypertext processor');

echo http_build_query($data);

echo http_build_query($data'myvar_');

?>

php curl调用第三方接口小样相关推荐

  1. http方式调用第三方接口

    java如何调用对方http接口(II) - 流年煮雪 - 博客园 纯Java api HttpURLConnection Java调用外部接口_CJD的博客-CSDN博客_调用外部接口 纯Java  ...

  2. 调用第三方接口缴费的通用逻辑

    下面是我总结的调用第三方接口缴费的通用逻辑 代码逻辑如下: 代码示例: public RestDTO<BaseDTO> charge(Param param)throws Exceptio ...

  3. 前端调用第三方接口跨域问题(淘宝)

    前端调用第三方接口跨域问题 百度了好久,大部分的文章都前篇一律的说jsonp跨域,要不就是说配置CROS.看到那种文章出处应该都是一家,心好累.首先来说淘宝目前的接口是不支持jsonp请求的,配置CR ...

  4. Java 调用第三方接口,实战来了!

    在项目开发中经常会遇到调用第三方接口的情况,比如说调用第三方的天气预报接口. 1.准备工作: 在项目的工具包下导入HttpClientUtil这个工具类,或者也可以使用Spring框架的restTem ...

  5. Http调用第三方接口的两种方式实例《超详细!!!》***

    Http调用第三方接口的两种方式<超详细!!!>* 最近在公司做一些调用第三方接口的工作,查阅了一部分的资料和向前辈以及朋友请教,完成了第三方接口的调用,其实主要是通过第三方提供的文档,完 ...

  6. 读取EXCEL文件数据,再调用第三方接口,将第三方数据重新写入到EXCEL文件

    读取EXCEL文件数据,再调用第三方接口,将第三方数据重新写入到EXCEL文件 工作中涉及很多提供文档数据,少则几条,多则上万,少的可以自己编辑一个,静态final来自己定义,一旦数太多得话,就得使用 ...

  7. UIPATH 调用第三方接口(百度OCR文字识别举例)

    业务场景: 使用RPA获取业务系统网站的验证码截图,将截图转base64之后传到百度OCR文字识别接口,获取文字识别结果,将识别结果用作登陆业务系统的验证码凭证.从而解决RPA自动登录系统的问题. 设 ...

  8. 使用令牌桶算法解决调用第三方接口限流问题

    我们在调用第三方接口时常常会碰到接口限流问题,为了解决这一问题,大家想出了许多方法.我这里介绍一下我的方法,第三方接口限流一般是基于令牌桶算法的,那么我们可以以彼之道还治彼身,使用令牌桶算法实现我方调 ...

  9. SpringBoot(32) 整合Forest实现调用第三方接口

    一.前言 Forest是什么? Forest是一个高层的.极简的轻量级 HTTP调用API框架,让Java发送HTTP/HTTPS请求不再难.它比OkHttp和HttpClient更高层,比Feign ...

最新文章

  1. [导入]Nhibernate引入自定义Membership和Role
  2. 编程方法学15:指针要点回顾
  3. 【java/C# 服务器】IOS 配置推送证书 p12文件流程 - 勿以己悲
  4. 机器学习算法及应用领域相关的中国大牛
  5. #define的高级用法
  6. MySQL复习值代码知识点(1)
  7. testng 组_TestNG组
  8. 高通android7.0模块编译.ko
  9. Promise.all和Promise.race区别,和使用场景
  10. 【作业报告】作业5 四则运算 测试与封装 5.1
  11. 安卓系统加速_真就这么简单让你的安卓手机变流畅?
  12. xml 硕正报表_硕正控件学习记录
  13. NepCTF2021 梦里花开牡丹亭
  14. php实现下雪场景,下雪的唯美短句 下雪的场景写一段话
  15. win10电脑pppoe拨号模块损坏_WIN10系统提示拨号连接已阻止的解决方法
  16. JS中 ?? 与 || 的区别
  17. IDEA--工欲善其事必先利其器
  18. 考研报名电脑显示服务器错误,2021考研报名常见问题:网报过程中,发现考生姓名、证件号码等信息有误怎么办?...
  19. 潛行空間中1~6的編織法(A)
  20. Win10 每天蓝屏多次,蓝屏代码0x3B:SYSTEM_SERVICE_EXCEPTION

热门文章

  1. 2019长沙理工大学计算机专业分数线,2019长沙理工大学各省各批次录取分数线汇总...
  2. JQuery 基础 jq选择器 dom操作
  3. 【BP数据预测】差分进化算法优化BP神经网络数据预测【含Matlab源码 1315期】
  4. 4.12 并发技术:sync包同步调度综合案例
  5. java在gc正常工作的情况下_Java GC的工作原理
  6. 唯品会订单分库分表的实践总结以及关键步骤
  7. uploadify批量上传文件
  8. apache服务构建虚拟web主机
  9. macOS10.13如何升级到macOS10.15
  10. c语言编译通过无法运行程序,请教:这是一个模拟寒食薛定锷方程的程序,编译通过后但无法运行...