妙な質問をしてしまいすみません、周囲に聴ける人間がいないものでご容赦ください。
抜粋の掲載で申し訳ありません。
PHP
1 } catch (Exception $e) { 2 error_log("### データ取得失敗 ⇒".$sql."###".$e->getMessage(),0); 3 http_response_code(599); #★☆★独自のステータスコード★☆★ 4 die("Error:" . $e->getMessage()); 5 } 6 7 break; 8 9 default: 10 http_response_code(499); 11 die("Error:" . "今夜が山田..."); 12 break; 13} 14$json = $results; //JSONに登録 15 16http_response_code(200); //HTTPレスポンスコード(200正常終了) 17header('Content-Type: application/json; charset=UTF-8'); 18header("X-Content-Type-Options: nosniff"); 19 20echo json_encode($json, JSON_UNESCAPED_UNICODE | JSON_PRETTY_PRINT); //エンコードして送信 21exit();
作成したWebAPIは データベースサーバにアクセスして 無事データ取得が行えた場合に限り、JSONデータを返すようにしたつもりです。
現在以下のように上記APIに Python側でアクセスして データ取得するものをこしらえました。
Python
1 2r = requests.post("http://hogeserver/webapi/test01.php", data=param) 3
【質問】
APIのコードをご覧頂くとお分かりのとおり、エラーがキャッチされた場合、独自ステータスコードを返し 処理を終えてしまっています。
①Python側でステータスコードを表示させたところ、API側でエラーになった場合 決まって500が返ってきます。Apatche起因でしょうか??
②APIがエラーをキャッチしてdieされた場合でも、Python側に キャッチしたエラーメッセージが返してくれている理由が分かりません。
正直結果往来で非常にありがたいのですが、dieした場合、PHPの最後の行 echoが働かないために
本来レスポンスのボディに 何も入ってこないのでは?? と考えています。
ネット上の記事の切貼りだけで、ある程度のものができてしまったわけですが、正直よくわかっていません。よろしくお願いします。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/05/14 04:17
退会済みユーザー
2020/05/14 04:18
2020/05/14 04:23
退会済みユーザー
2020/05/14 04:28 編集
退会済みユーザー
2020/05/14 04:27
2020/05/14 05:35