我得到错误响应为405方法不允许

时间:2016-12-12 09:27:33

标签: php rest api curl

我在尝试使用PHP CURl时得到错误响应为405方法不允许请找到我的下面代码并帮助我,我的情况非常危险

<?php
    $credentials = "xxxx:yyyyy"; 
    $a=base64_encode($credentials);                   
    $url = "http://api.trust.in/get/token"; 
    $page = "/get/token"; 
    $headers = array( 
            "POST ".$page." HTTP/1.1", 
            "Content-Type: text/plain;charset=utf-8", 
            "Content-Length:0",
            "Authorization: Basic " . base64_encode($credentials),
            "Connection:keep-Alive",
            "Host:xyz.abc.in"
        );
    $ch = curl_init(); 
    curl_setopt($ch, CURLOPT_POST, true);
    curl_setopt($ch, CURLOPT_HEADER, true);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
    curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
    curl_setopt($ch, CURLOPT_HTTPHEADER, $headers); 
    curl_setopt($ch, CURLOPT_URL,$url);
    $data = curl_exec($ch); 
    print_r(get_headers($url));
?>

3 个答案:

答案 0 :(得分:1)

不要设置标题内容长度变为零,应该给你发布到网站的参数长度,测试它你可以使用邮递员。使用它更容易知道你做错了什么。

答案 1 :(得分:0)

根据您提供的文档,用于API端点的网址不正确。

而不是:

http://api.trust.in/get/token

使用:

http://api.toyotautrust.in/get/token

请尝试并告诉我们结果。

答案 2 :(得分:0)

根据我的文档,由于POST请求的参数为零,因此添加了空数组$params curl_setopt($ ch,CURLOPT_POSTFIELDS,http_build_query($ params));