Facebook Grapth APIのレスポンスからReason-Phraseがなくなっていた(CakePHPの場合)

標準

3/13 – 14にかけて、graph.facebook.comがアップデートされたようで、レスポンスのStatus-LineにReason-Phraseが含まれなくなっていました。

これまで、

HTTP/1.1 200 Ok

だったのが、「Ok」の部分がなくなって

HTTP/1.1 200

が返ってくるようになています。

なお、RFC2616では、

Status-Line = HTTP-Version SP Status-Code SP Reason-Phrase CRLF

と定義されているので、Reason-Phraseは必須のはずなんですがどうなんでしょ。

と、ここでCakePHPのHttpSocketを利用してGraph APIにアクセスしている場合に問題が発生します。

Status-Lineは、RFC2616の定義を前提として実装されていたため、Graph APIからのHttpバージョン、ステータスコードが取得できず、isOk()メソッドなどが正常に機能しなくなります。

というのに気付いたのが、先々日でしたが既に対応されていました。

changed regexp for response code by samokspv · Pull Request #3016 · cakephp/cakephp

問題のある方は、masterブランチのHttpSocketResponse.phpへ差し替えれば大丈夫です。
(次のリリースである2.4.7以降は修正されたものが提供されます。

Facebook側には一応バグレポートで出してみました。
Graph API not provide Reason-Phrase in response Status-Line

対応するのかな。

2014.08.14 > 慎重な検討の結果、対応されませんでした。( ´・ω・`)

コメントを残す

Page optimized by WP Minify WordPress Plugin