HTTP ステータスは、文字で判定しちゃだめな理由(HTTP/1.1 200 OK以外のパターンがある)
サイト移転のお知らせ2025年4月22日(火)ファンブログ終了です。それに伴いサイト移転します。
移転先: https://www.wcguru.net/
このページの移転先:https://www.wcguru.net/archives/200
Rakuten Web APIで商品アイテム検索するPHPプログラムを利用しています。PHPのfile_get_contents関数でWeb Requestしています。
リクエスト部分するソースは↓こんな感じです。
これを参考に「OK」=成功、「OK」なしなら失敗という判断をしていました。
ところが・・・楽天APIのサーバーが変わったようで、結果が変わっていました。
[0]"HTTP/1.1 200 200"
OKがありません。プログラムは「 200 」に変更しました。
HTTPステータスは文字列ではなく数値で判断するのが良さそうですね。
リクエスト部分するソースは↓こんな感じです。
$context = stream_context_create(array('http' => array('igore_errors' => true)));
$response = file_get_contents($url, false, $context);
- php.iniに「allow_url_fopen = On」設定が必要な場合があります。
- リクエストした応答は$responseに入ってきます。
- 応答部のヘッダは、PHP予約変数 $http_response_header[php.net]配列を参照するとわかります。
- [0]"HTTP/1.1 200 OK"
- [1]"Date: Sat, 12 Apr 2008 17:30:38 GMT"
- [2]"Server: Apache/2.2.3 (CentOS)"
- [3]"Last-Modified: Tue, 15 Nov 2005 13:24:10 GMT"
- [4]"ETag: "280100-1b6-80bfd280""
- [5]"Accept-Ranges: bytes"
- [6]"Content-Length: 438"
- [7]"Connection: close"
- [8]"Content-Type: text/html; charset=UTF-8"
これを参考に「OK」=成功、「OK」なしなら失敗という判断をしていました。
ところが・・・楽天APIのサーバーが変わったようで、結果が変わっていました。
[0]"HTTP/1.1 200 200"
OKがありません。プログラムは「 200 」に変更しました。
HTTPステータスは文字列ではなく数値で判断するのが良さそうですね。
- 初期費用0円(2022年8月4日に撤廃)
- 安定したサイト運営が可能(CPU/メモリ リソース保証 6コア/8GB~)
- 契約中は独自ドメインつき 独自ドメイン永久無料特典があります
- 最大10日間無料で、サーバーのお試し利用ができます
- ディスクキャッシュも高速 NVMe SSDを採用(300GB~)
- 大量アクセスでも安心 転送量は無制限
【このカテゴリーの最新記事】
-
no image
-
no image
-
no image
-
no image
-
no image
この記事へのコメント
コメントを書く
この記事へのトラックバックURL
https://fanblogs.jp/tb/11305516
※ブログオーナーが承認したトラックバックのみ表示されます。
この記事へのトラックバック