【问题标题】:GuzzleHTTP: POST Request magically turns to GET request giving me "Method Not Allowed"GuzzleHTTP:POST 请求神奇地变成了 GET 请求,给了我“不允许的方法”
【发布时间】:2017-03-26 10:14:02
【问题描述】:

我有一个 PHP 文件 example.php,在这个文件中我输入了下面的代码

$client->request('POST', $postURL, ['headers' => ['content-type' => 'application/json', 'Authorization'=>'Token t6wdjjd7787sjjhd87954frr']], ['json' => $post_data] );

当我访问我的网络浏览器测试请求时 localhost:8000/example.php

我收到错误 405 GET not allowed,同时发出的请求是 POST 请求

我在这里做错了什么?

我正在使用 Apache 服务器、GuzzleHTTP 6、PHP 5.6

【问题讨论】:

  • 您正在运行什么服务器和框架?有关您的环境的一些基本信息会有所帮助
  • 我正在使用 Apache 服务器、GuzzleHTTP 6、PHP 5.6

标签: php http guzzle


【解决方案1】:
<?php $client->request('POST', $postURL, ['headers' => ['content-type' => 'application/json', 'Authorization'=>'Token t6wdjjd7787sjjhd87954frr'],'body'=>$post_data]] );

你有4个参数,方法应该是3个参数:

  1. 方法
  2. URI
  3. 选项数组。

【讨论】:

  • 这不是问题,因为请求通过时语法没有任何问题。
  • 第4个参数是什么?
  • 第 4 个参数是发送给 API 请求的 POST 数据,格式为 JSON
  • 我更新了我的答案,尝试将数据放入 options => body 而不是另一个参数。我觉得它会解决这个问题。
  • 可能远程服务器不允许POST方法,远程服务器的类型?第三方或您可以访问?
猜你喜欢
  • 1970-01-01
  • 2023-04-02
  • 2017-06-05
  • 2019-05-15
  • 2017-06-26
  • 2023-03-29
  • 2015-03-09
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多