Guzzle 3没有发送POST请求

时间:2015-03-06 10:45:32

标签: php guzzle

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

我在发送POST请求时遇到问题,看起来它实际上并没有发送帖子数据。 API工作正常。我可以使用Postman在使用正确的API密钥和用户ID时获得结果,但是从我的脚本中我不是。

我做错了什么?我正在关注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中运行请求,它就可以工作。

对此有任何建议吗?我真的很难看到我对这个请求做错了什么。

1 个答案:

答案 0 :(得分:0)

我也遇到过同样的问题,并通过调用以下帖子来解决它:

$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']
    )
));