Laravel9×Postmanで「Error: socket hang up」が表示されて詰まった件

ことの経緯

事の始まりは昨日の仕事中。先輩と何気ない話をしている中で、flutterで何かアプリを作ろうという話になり、帰宅後早速Laravelでバックエンドの処理を実装。

いつも通りPostmanでAPIを叩いてみると、初めて見るエラーが!

むむっ!なんだこれは?

困惑しつつ、とりあえずブラウザからデバッグ用にはやしていたURLを叩いてみると普通に表示される。
Laravel側で何か出力されていないか確認してみると「Invalid request (Malformed HTTP request).  」と表示されてる!

なにやらHTTPリクエストが正しくないようだということが分かったので、Postmanの設定を確認。
すると・・・

リクエストヘッダにContent-Lengthが指定されてなかった!
Content-Lengthにチェックを入れて再度POSTすると

やったね!
今回は自分の凡ミスで起きただけだったけど、そもそもsocket hang upって何なのか気になったので、軽く調査してみました。

Socket hang upが起きる様々な原因たち

ググってみると色々な発生事例がありました。
APIキーで認証する予定なのに、Postmanの認証設定で違う認証方式を選んでいた、レスポンスのデータ形式が想定とは異なっていたなど、その原因は多岐にわたるみたいです。

今後の対応フロー

結局直接「これが原因だ!」と言い切れるものはありませんでした。

ただ、基本的にはクライアント側が原因で起きるエラーのようなので、今後起きた時は下のチェックリストを上から順番に確認して原因探っていこうと思います。

  • リクエストURLを確認
  • リクエストヘッダーに必要なパラメータを入れ忘れてないか
  • リクエストヘッダーに変なパラメータをつけてないか
  • Postmanで指定している認証方法が間違ってないか
ゆうき

都内某企業でWebエンジニアをやっている人。 普段はPHPとJavaScriptを使って業務を行ってます。 プライベートでは好き勝手にアプリや3DCGを作る個人サークルのStudio Babeをやっています。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です