我使用的是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中运行请求,它就可以工作。
对此有任何建议吗?我真的很难看到我对这个请求做错了什么。
答案 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']
)
));