大佬教程收集整理的这篇文章主要介绍了OAuth,PHP,Rest API和curl发出400错误请求,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
好的,这是解决此噩梦的方法:
curl_setopt($ch,CURLOPT_httpheader ,array('Content-Length: 0'));
另外,发送POST
没有标题的curl 也不行。
我们使用了带有OAuth 1.0 的car2go Rest-
API的几个应用程序。
我们所有的网络应用都在2天前停止工作。curl
POST
现在,所有请求都失败,并显示以下错误:
400 Bad request
Your browser sent a request that this server could not understand.
Error code: 53
Parser Error: [Content-Length: -]
我花费大量时间试图找出问题是否出在我的oauth工作流程上。但是最后所有参数,签名和内容都是正确的。我成功地POST
通过via
邮递员(REST客户端)
所以我的结论是,curl的php代码突然不再起作用了。
这是(非常难看)卷曲功能。与大多数有关curl
POST的教程不同的是,我传递的是已附加所有参数的完整URL,因此我不需要CURLOPT_POSTFIELDS
。
function curlAPI($params) {
//open connection
$ch = curl_init();
$url = $params['url'];
curl_setopt($ch,CURLOPT_HEADER,falsE);
//set the url,number of POST vars,POST data
curl_setopt($ch,CURLOPT_URL,$url);
curl_setopt($ch,CURLOPT_USERAGENT,$_SERVER['http_user_ageNT']);
curl_setopt($ch,CURLOPT_FOLLOWLOCATION,truE);
curl_setopt($ch,CURLOPT_MAXREDIRS,50);
curl_setopt($ch,CURLOPT_TIMEOUT_MS,5000);
if($params['type'] == 'POST') {
// POST
curl_setopt($ch,CURLOPT_POST,truE);
} else if($params['type'] == 'deletE') {
// deletE
curl_setopt($ch,CURLOPT_CUSTOMrequEST,"deletE");
} else if($params['type'] == 'PUT') {
$update_json = array();
// PUT
curl_setopt($ch,"PUT");
curl_setopt($ch,CURLOPT_POSTFIELDS,'');
} else {
// GET
curl_setopt($ch,0);
}
curl_setopt($ch,CURLOPT_RETURNTRANSFER,truE);
curl_setopt($ch,truE);
//execute post
$@R_874_5272@'result'] = curl_exec($ch);
// debug
if (falSE === $@R_874_5272@'result']) {
$@R_874_5272@'errorInfo'] = curl_error($ch).' - '.curl_errno($ch);
}
$reponseInfo = array();
$reponseInfo['info'] = curl_geTinfo($ch);
$reponseInfo['error'] = curl_error($ch);
//close connection
curl_close($ch);
$@R_874_5272@'reponseInfo'] = $reponseInfo;
return json_encode($result);
}
以上是大佬教程为你收集整理的OAuth,PHP,Rest API和curl发出400错误请求全部内容,希望文章能够帮你解决OAuth,PHP,Rest API和curl发出400错误请求所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。