PHP Curl进行POST操作,为何有2次重复的请求,我只执行了一次啊
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了PHP Curl进行POST操作,为何有2次重复的请求,我只执行了一次啊相关的知识,希望对你有一定的参考价值。
参考技术A 告诉你两个用于获得curl错误报告的函数curl_errno可以获得错误码,当然也包括错误的http状态码
curl_error可以获得错误信息
具体用法参见php手册。为了能得到正确的错误信息,使用这两个函数之前请设定CURLOPT_FAILONERROR选项为true。
还要提醒你一点,注意curl_init是否执行成功 参考技术B 问题解决了吗?我也遇到同样问题了 参考技术C 问题解决了吗?我也遇到同样问题了
如何使用 PHP(cURL)中的 post 方法在正文中发送带有标头的 JSON 数据 [重复]
【中文标题】如何使用 PHP(cURL)中的 post 方法在正文中发送带有标头的 JSON 数据 [重复]【英文标题】:How to send JSON data in body with header using post method in PHP(cURL) [duplicate] 【发布时间】:2018-07-12 22:24:51 【问题描述】:我尝试使用以下代码在 post 方法中使用 json 数据和标头常量类型发送请求:application/json
$ch_get = curl_init($url_get);
$jsonData1_get_r = array(
'customerMobileNo'=>'9040845440',
'recipientMobileNo'=>'7008565316',
'recipientName'=>'Name Test Test',
'accountNo'=>'5928374737328009',
'bankName'=>'HDFC',
'accIfsc'=>'HDFC0002058',
'transactionType'=>'IMPS',
'amount'=>'100'
);
$jsonDataEncoded_get = json_encode($jsonData1_get_r);
curl_setopt($ch_get, CURLOPT_POST, 1);
curl_setopt($ch_get, CURLOPT_POSTFIELDS, $jsonDataEncoded_get);
curl_setopt($ch_get, CURLOPT_HTTPHEADER, array('Content-Type: application/json'));
curl_setopt($ch_get, CURLOPT_HTTPHEADER, array('Authorization: '.$token.''));
curl_setopt($ch_get, CURLOPT_RETURNTRANSFER, TRUE);
$result_get = curl_exec($ch_get);
curl_close($ch_get);
当使用上面的代码时出现以下错误
不支持内容类型“application/x-www-form-urlencoded;charset=UTF-8”
【问题讨论】:
我不确定,但您是否尝试过在同一个数组中同时设置两个标题?从目前的使用方式来看,Content-Type
似乎被覆盖了。
类似curl_setopt($ch_get, CURLOPT_HTTPHEADER, array('Content-Type: application/json', 'Authorization: '.$token));
I think you must look at here.
【参考方案1】:
您可以使用以下代码来实现您的目标
$jsonData1_get_r = array(
'customerMobileNo'=>'9040845440',
'recipientMobileNo'=>'7008565316',
'recipientName'=>'Name Test Test',
'accountNo'=>'5928374737328009',
'bankName'=>'HDFC',
'accIfsc'=>'HDFC0002058',
'transactionType'=>'IMPS',
'amount'=>'100'
);
$jsonDataEncoded_get = json_encode($jsonData1_get_r );
$ch_get = curl_init($url_get);
curl_setopt($ch_get, CURLOPT_CUSTOMREQUEST, "POST");
curl_setopt($ch_get, CURLOPT_POSTFIELDS, $jsonDataEncoded_get );
curl_setopt($ch_get, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch_get, CURLOPT_HTTPHEADER, array(
'Content-Type: application/json',
'Authorization: ' . $token)
);
希望对你有帮助!!
感谢和问候
【讨论】:
以上是关于PHP Curl进行POST操作,为何有2次重复的请求,我只执行了一次啊的主要内容,如果未能解决你的问题,请参考以下文章