博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
php 使用 curl 发送 post 数据
阅读量:4199 次
发布时间:2019-05-26

本文共 1467 字,大约阅读时间需要 4 分钟。

  作为第三方开发商,经常会需要调用平台接口,远程调用,就要用到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);
   其实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_');
?>

转载地址:http://zfzli.baihongyu.com/

你可能感兴趣的文章
Log4j使用教程
查看>>
JSON入门教程
查看>>
JSF入门教程
查看>>
存储过程入门教程
查看>>
JSP自定义Tag
查看>>
JSP自定义标签rtexprvalue属性
查看>>
RMI原理及实现
查看>>
解决Tomcat Error listenerStart 问题
查看>>
Hibernate重要对象的详解
查看>>
Struts2 配置文件手册
查看>>
Spring AOP 实例
查看>>
JAVA分页显示(程序分页和物理分页)
查看>>
Hibernate复合主键
查看>>
JQuery推荐插件(200+)
查看>>
自己实现事件监听
查看>>
高效实现数据仓库的七个步骤
查看>>
数据仓库开发过程中的七个禁忌
查看>>
顺利开发数据仓库的七种思路
查看>>
MySQL中文参考手册
查看>>
什么是ARP?如何防范ARP欺骗?
查看>>