在 Laravel 中使用 Guzzle 获取 API 响应
Getting API Response using Guzzle in Laravel
我正在尝试从 Metals API 获得响应,但尽管我可以使用 URL.
获得 API,但仍然收到 404 错误
public function valueFromApi(){
$accesskey = "123456";
$client = new \GuzzleHttp\Client();
$response = $client->request('POST', 'https://metals-api.com/api/latest', [
'form_params' => [
'access_key' => $accesskey,
'base' => 'GBP',
'symbols' => 'XAU',]
]);
dd($response);
}
如果我尝试直接通过浏览器访问 URL,这会起作用:
https://metals-api.com/api/latest?access_key=123456&base=GBP&symbols=XAU
我一定是误解了参数的工作方式。任何建议表示赞赏。
表单参数与查询参数不同。因此,您需要将参数设置为查询。如果您在浏览器中访问它,我不希望它是 POST 而是 GET。
$response = $client->request('GET', 'https://metals-api.com/api/latest', [
RequestOptions::QUERY => [
'access_key' => $accesskey,
'base' => 'GBP',
'symbols' => 'XAU',
]
]);
我正在使用 RequestOptions,这是硬编码字符串选项的语法糖,与 'query' 相同。
按照他们docs中的规定,你需要定义常量
define("form_params", GuzzleHttp\RequestOptions::FORM_PARAMS );
然后你就可以使用你的代码了
$response = $client->request('POST', 'https://metals-api.com/api/latest', [
'form_params' => [
'access_key' => $accesskey,
'base' => 'GBP',
'symbols' => 'XAU',]
]);
我正在尝试从 Metals API 获得响应,但尽管我可以使用 URL.
获得 API,但仍然收到 404 错误 public function valueFromApi(){
$accesskey = "123456";
$client = new \GuzzleHttp\Client();
$response = $client->request('POST', 'https://metals-api.com/api/latest', [
'form_params' => [
'access_key' => $accesskey,
'base' => 'GBP',
'symbols' => 'XAU',]
]);
dd($response);
}
如果我尝试直接通过浏览器访问 URL,这会起作用:
https://metals-api.com/api/latest?access_key=123456&base=GBP&symbols=XAU
我一定是误解了参数的工作方式。任何建议表示赞赏。
表单参数与查询参数不同。因此,您需要将参数设置为查询。如果您在浏览器中访问它,我不希望它是 POST 而是 GET。
$response = $client->request('GET', 'https://metals-api.com/api/latest', [
RequestOptions::QUERY => [
'access_key' => $accesskey,
'base' => 'GBP',
'symbols' => 'XAU',
]
]);
我正在使用 RequestOptions,这是硬编码字符串选项的语法糖,与 'query' 相同。
按照他们docs中的规定,你需要定义常量
define("form_params", GuzzleHttp\RequestOptions::FORM_PARAMS );
然后你就可以使用你的代码了
$response = $client->request('POST', 'https://metals-api.com/api/latest', [
'form_params' => [
'access_key' => $accesskey,
'base' => 'GBP',
'symbols' => 'XAU',]
]);