簡體   English   中英

如何在HTTP請求PHP中將值作為正文發送

[英]How to send values as body in http request PHP

我正在使用TRAK api

它說我們需要發送一個帶有憑據的http請求作為正文。 他告訴我一種方法是轉到“ URL選擇帖子”,將地址添加為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做到這一點,那將是有幫助的。

看來您需要使用將參數添加到請求的主體中。

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

只要對方接收將處理正文中發送的參數,這應該起作用,否則不會起作用。

您可能還想通過添加以下行將請求作為JSON發送(不確定是否需要)。

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

編輯:修復addHeaders的語法錯誤。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM