如何在HTTP请求PHP中发送值作为正文

ovfsdjhp  于 2023-03-07  发布在  PHP
关注(0)|答案(1)|浏览(124)

我正在使用TRAK API。
它说我们需要发送一个http请求,并将凭据作为正文,他告诉我一个方法是转到Hurl选择post,将地址添加为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来做这件事,那么这将是有帮助的。

voase2hg

voase2hg1#

看起来您需要使用将参数添加到请求的主体中。

$r->setBody('[{ "email":"m@addy.co", "password":"foo*bar!", "name":"addy-dev" }]');

只要接收的另一方会处理发送到正文中的参数,这应该可以工作,否则就不行。
您可能还希望通过添加以下行(不确定是否需要)以JSON格式发送请求。

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

EDIT:修正了addHeaders的语法错误。

相关问题