From ca212b547a4ea116089fe12fce49ae9b0970581f Mon Sep 17 00:00:00 2001 From: unarist Date: Mon, 11 Feb 2019 03:06:41 +0900 Subject: [PATCH] =?UTF-8?q?Accept=E3=81=AB*/*=E3=82=92=E5=85=A5=E3=82=8C?= =?UTF-8?q?=E3=82=8B=E3=81=A8=E7=84=A1=E8=A6=96=E3=81=95=E3=82=8C=E3=82=8B?= =?UTF-8?q?=E3=81=AE=E3=81=A7=E5=85=A5=E3=82=8C=E3=81=AA=E3=81=84=E3=82=88?= =?UTF-8?q?=E3=81=86=E3=81=AB=E3=81=99=E3=82=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/MetadataResolver/MetadataResolver.php | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/app/MetadataResolver/MetadataResolver.php b/app/MetadataResolver/MetadataResolver.php index 9bb172e..a00625b 100644 --- a/app/MetadataResolver/MetadataResolver.php +++ b/app/MetadataResolver/MetadataResolver.php @@ -58,10 +58,16 @@ class MetadataResolver implements Resolver public function resolveWithAcceptHeader(string $url): ?Metadata { try { + // Rails等はAcceptに */* が入っていると、ブラウザの適当なAcceptヘッダだと判断して全部無視してしまう。 + // c.f. https://github.com/rails/rails/issues/9940 + // そこでここでは */* を「Acceptヘッダを無視してきたレスポンス(よくある)」のハンドラとして扱い、 + // Acceptヘッダには */* を足さないことにする。 + $acceptTypes = array_diff(array_keys($this->mimeTypes), ['*/*']); + $client = new \GuzzleHttp\Client(); $res = $client->request('GET', $url, [ 'headers' => [ - 'Accept' => implode(', ', array_keys($this->mimeTypes)) + 'Accept' => implode(', ', $acceptTypes) ] ]);