【问题标题】:Guzzle 3 not sending POST requestGuzzle 3 不发送 POST 请求
【发布时间】:2019-08-29 02:02:52
【问题描述】:

我正在使用 Guzzle 3,因为它是唯一适用于 PHP 5.3.2 的版本。

我在发送 POST 请求时遇到问题,而且它似乎实际上并未发送发布数据。 API 工作正常。使用正确的 API 密钥和用户 ID 时,我可以使用 Postman 来获取结果,但从我的脚本中我不是。

我做错了什么?我正在关注 Guzzle 文档:

$client = new Guzzle\Http\Client("http://example.com/api");

# Make API request to get session data
$request = $client->post('user/session', array(
    'body' => array(
        'token' => $_SESSION['ER']['API_KEY'],
        'user' => $_SESSION['ER']['USER_ID']
    )
));

$response = $request->send();

var_dump($_SESSION['ER']['API_KEY']);
var_dump($_SESSION['ER']['USER_ID']);

\\ string(32) "a559d5bba5a9e9517d5c3ed7aeb62db6"
\\ string(5) "30972"

当我在 API 上 var_dump $_POST['token'] 时,它甚至都没有设置。然而,如果我在 Postman 中运行请求,它就可以工作。

请问有什么建议吗?我真的很难看出我在处理这个请求时做错了什么。

【问题讨论】:

  • 响应对象是什么样的?

标签: php guzzle


【解决方案1】:

我遇到了同样的问题,并通过调用 post 来解决它:

$request = $client->post(
    'user/session', 
    // this is array of headers
    null, 
    // this is dedicated field with body to post
    array(
        'token' => $_SESSION['ER']['API_KEY'],
        'user' => $_SESSION['ER']['USER_ID']
    )
));

【讨论】:

  • 我还是有客户端在GET中调用的问题(使用PHP 5.3.28)
猜你喜欢
  • 2020-07-14
  • 2018-03-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-01-27
  • 2014-04-10
  • 2022-02-21
  • 1970-01-01
相关资源
最近更新 更多