PHP - Guzzle奇怪的麻烦

时间:2018-03-15 00:22:53

标签: php guzzle

我正在使用PGP Guzzle HTTP的最新版本...非常简单的测试:

use GuzzleHttp\Client;
$client = new Client();
    $res = $client->post('https://MYAPI/cards/XXX/credit',[
        'headers' => ['Authorization' => 'Token MYTOKEN'],
        'json' => [
            "amount" => 10,
            "reason" => "Because"
        ]
    ]);
    var_dump($res);

返回了一个例外:

GuzzleHttp\Exception\ClientException : Client error: `POST 
https://MYAPI/cards/XXX/credit` resulted in a `405 Method Not Allowed` 
response:
{"detail":"Méthode \"GET\" non autorisée."}

有什么想法吗?我调用的REST API服务器是用Django DRF编写的。但认为这可能是不相容的,这是无稽之谈....

任何想法的Thanxs。

2 个答案:

答案 0 :(得分:1)

您会收到非常明确的错误,即服务器不接受POST请求。我不知道,是不是。如果还能控制服务器,你可以检查那里的代码,也许这只是一个错误。

基本上你不能谈论兼容性或不兼容性,因为它只是简单的HTTP而且有效。您和服务器开发人员之间的通信或服务器中的错误可能会出现问题。

答案 1 :(得分:0)

嗯,Guzzle和DRF都没有失败......只有DRF网址中的一个参数不接受尾随/在其他入口点....

只需在信用网址后添加/,一切正常......

以某种方式让DRF显示这种误导性错误消息的奇怪行为。