程序问答   发布时间:2022-06-02  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了OAuth,PHP,Rest API和curl发出400错误请求大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

如何解决OAuth,php,Rest API和curl发出400错误请求?

开发过程中遇到OAuth,php,Rest API和curl发出400错误请求的问题如何解决?下面主要结合日常开发的经验,给出你关于OAuth,php,Rest API和curl发出400错误请求的解决方法建议,希望对你解决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,请注明来意。