これは、私または誰かが再び同じことをした場合に、そのような単純なことを修正しようとして髪を引き裂くのに 3 時間費やす必要がないように、私の過ちを公に文書化することです。
環境
ある C# MVC ASP.NET アプリケーションから別のアプリケーションに HttpRequest を送信していました。アプリケーションには HTTPS 接続が必要であり、URLRewrite を使用して HTTP 要求を HTTPS URL にリダイレクトしています。
1 つのアプリケーションが、ごく標準的なものである JSON データを本文に含む POST 要求を送信していました。もう一方のアプリケーションは、MVC コントローラー クラス (GET と POST の CollectionAction メソッドと Insert メソッド) を使用してこのデータを受信するように設定されています。
問題の症状
受信アプリケーションは、POST アクション (ItemAction) ではなく、GET メソッド (CollectionAction) を実行していました。これは、アプリケーションに着信するリクエストが実際には GET リクエストであり、さらに JSON データが欠落していたためです。
ヘッダー「x-http-method」を送信して、リクエスト メソッドを GET から POST にオーバーライドしました(すでにリクエスト httpmethod を POST に設定していましたが、これは無視されていました)。これは機能しましたが、まだデータが送信されていませんでした。
そのため、コンテンツの長さとデータが送信されている POST リクエストが表示され、データやコンテンツの長さが入っていない GET リクエストがあるため、髪を引っ張ることができなくなりました (ただし、ヘッダーは保持されていました)。