【发布时间】:2018-08-13 05:06:36
【问题描述】:
我正在尝试使用 guzzle 向开放 API 发出发布请求。我也发送帖子数据如下。出于某种原因,我收到了 400 错误请求
$req = $client->request('POST',$this->base_url.'nutrients?app_id='.$this->app_id.'&app_key='.$this->api_key,[
'headers' => [
'Content-Type' => 'application/json'
],
\GuzzleHttp\RequestOptions::JSON => [
"yield" => $portions,
"ingredients" => [
"quantity" => $portions,
"measureURI" => "\"$f_uri\"",
"foodURI" => "\"$m_uri\""
]
]
]);
$response = $client->send($req);
$decoded = json_decode($response->getBody());
dd($decoded);
api文档显示curl中的方法如下: 卷曲调用:
curl -d @food.json -H "Content-Type: application/json" "https://api.edamam.com/api/food-database/nutrients?app_id=${YOUR_APP_ID}&app_key=${YOUR_APP_KEY}"
food.json:
{
"yield": 1,
"ingredients": [
{
"quantity": 1,
"measureURI": "http://www.edamam.com/ontologies/edamam.owl#Measure_unit",
"foodURI": "http://www.edamam.com/ontologies/edamam.owl#Food_11529"
}
]
}
我的 measureURI 和 foodURI 链接生成正确。
【问题讨论】:
-
$this->base_url 是什么?是 $this->base_url = "h ttp s: // api.edamam.com/api/food-database/"; ?
-
var $base_url = "api.edamam.com/api/food-database";
-
genesis - 我们不使用 "var" 在 PHP 中定义变量。
-
是的,刚刚改了。仍然没有什么不同。