您的位置:首页 > 编程语言 > PHP开发

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

2017-08-17 05:23 781 查看
今天公司做个东西,需要条用同事的接口,我的代码和他的代码不在同一个域下,但是都是子域。

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
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: