PHP模拟POST提交数据并获得返回值之CURL方法(使用PHP extension,然后使用php_curl.dll,很不错)

Posted 朝闻道

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了PHP模拟POST提交数据并获得返回值之CURL方法(使用PHP extension,然后使用php_curl.dll,很不错)相关的知识,希望对你有一定的参考价值。

今天公司做个东西,需要条用同事的接口,我的代码和他的代码不在同一个域下,但是都是子域。

a.ifensi.com与b.ifensi.com的关系。

我需要传递一个关联数组过去,他那边给我返回一个json对象。fsocket也可以实现这个需求,但是似乎代码行数比较多。朋友推荐用php的自带curl函数,但是用这个函数之前需要打开扩展,打开php.ini文件,把 ;extension=php_curl.dll 前面的;去掉,重启apache就可以了。
具体代码如下:

unset($arrPostInfo);
$arrPostInfo = array("key"=>$key,"cyid"=>$login_id,"startday"=>$startday,"endday"=>$endday,"page"=>$page,"limit"=>$pernum);
$url = ‘http://gb.ifensi.com/api/userhavelogs/‘;//请求的url地址

$ch = curl_init();//打开
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_POSTFIELDS, $arrPostInfo);
$response = curl_exec($ch);
curl_close($ch);//关闭
$result = json_decode($response,true);//因为接口那边返回的是json对象,所以这里把json对象解码并转换成数组,这样便于操作(json_decode()函数的第二个参数为true时,返回的就是解码后的数组,而不会是解码后的对象)。

这样写代码是不是比fsocket简洁多了。有点没搞明白,就是黑色加粗的四行代码似乎有顺序要求,我把前两项放到后面,就返回bool值。以后再研究研究.

http://blog.csdn.net/linking530/article/details/39400747

以上是关于PHP模拟POST提交数据并获得返回值之CURL方法(使用PHP extension,然后使用php_curl.dll,很不错)的主要内容,如果未能解决你的问题,请参考以下文章

php curl 模拟post表单向提交数据

如何用C/C++模拟post提交数据,获得http相应。

php curl模拟post请求提交数据样例总结

PHP通过CURL模拟登录并获取数据

CURL模拟POST请求实例

php curl模拟post请求的例子