如何在http请求PHP中将值作为body发送

时间:2014-04-23 13:50:01

标签: php jquery httprequest

我正在使用TRAK api

它说我们需要发送一个带有凭据的http请求作为正文。 他告诉我一个方法就是去Hurl 选择帖子,将地址添加为https://trak.addy.co/api/v1/auth/keys 然后单击“在参数中添加主体”。 并使用以下作为身体参数。

{
   "email":"m@addy.co",
   "password":"foo*bar!",
   "name":"addy-dev"
}

这适用于HURL并返回api密钥。

但是当我通过php发送它时,它无效。

$r = new HttpRequest('https://trak.addy.co/api/v1/auth/keys', HttpRequest::METH_POST);
$r->addPostFields(array('email' => 'm@addy.co', 'pass' => 'foo*bar!', 'name' => 'addy-dev'));

try {
    echo $r->send()->getBody();
} catch (HttpException $ex) {
    echo $ex;
}

我想这是因为它正在发送参数而不是正文?正确吗?

如何在http请求中发送正文?

如果有人知道如何通过jQuery这样做,那么它会有所帮助。

1 个答案:

答案 0 :(得分:0)

您似乎需要使用。

将参数添加到请求正文中
$r->setBody('[{ "email":"m@addy.co", "password":"foo*bar!", "name":"addy-dev" }]');

只要接收到的另一方将处理身体中发送的参数,这应该有效,否则不会。

您可能还希望通过添加以下行来发送您的请求作为JSON(不确定是否需要)。

$r->addHeaders(array('Content-Type' => 'application/json'));

编辑:修复了addHeaders的语法错误。