Laravel 5.5
で小さなアプリケーションを構築しています。Guzzle Http
を使用してAPIURLを呼び出し、応答を取得しています。API呼び出しの中には、の承認として機能するヘッダーを持つ特定の条件があるものはほとんどありません。生成されたリクエスト。私はヘッダーを次のように配置しようとしています:
public function post(Request $request)
{
try {
if ($request->url_method == 'get') {
$request = $this->client->get($request->url, [ 'headers' => [ 'access_token' => $request->headers->access_token]]);
}
else if ($request->url_method == 'post')
{ $request = $this->client->post($request->url, [$request->request_data]); }
else { return response()->json(['data' => 'Invalid Method'],500); }
$response = \GuzzleHttp\json_decode($request->getBody());
return response()->json(['data' => json_decode($response->d)], $request->getStatusCode());
}
catch (ClientException $e) {
return response()->json(['data' => 'Invalid Request.'], $request->getStatusCode());
}
}
しかし、これは私にエラーを与えています:
未定義のプロパティ:Symfony\Component\HttpFoundation\HeaderBag :: $ access_token
スクリーンショットをチェックアウトしてください:
また、コンソールのブラウザから呼び出すと、同じエラーが発生します。
これで私を助けてください、ありがとう。
このコードを試してください
use GuzzleHttp\Client as GuzzleClient;
..
..
..
$headers = [
'Content-Type' => 'application/json',
'AccessToken' => 'key',
'Authorization' => 'Bearer token',
];
$client = new GuzzleClient([
'headers' => $headers
]);
$body = '{
"key1" : '.$value1.',
"key2" : '.$value2.',
}';
$r = $client->request('POST', 'http://example.com/api/postCall', [
'body' => $body
]);
$response = $r->getBody()->getContents();
次のようにトークンにアクセスする前に、すべての小さなケースでベアラを追加してみてください-
$access_token = 'bearer '.$request->headers->access_token