APIゲートウェイを使用して、Elastic BeansTalkでTomcatバックエンドのデカップリングを行っていますが、APIからの応答を得ることができません。AWS APIゲートウェイ - エラスティックビーンズ用のHTTPプロキシトークはパススルーレスポンスではありません
APIゲートウェイコンソールを使用してテストしようとすると、統合要求が正常に機能します。バックエンドでもうまくいきます。 APIエンドポイントを使用してリクエストを行い、サーバーログをチェックすると、期待される200応答が得られます。
しかし、APIゲートウェイはエージェントの応答を転送するとき、どのクライアントでも解析することはできません。私はウェブブラウザ、APIテストツール、モバイルクライアント(iOS)を使ってみました。いずれの場合も、エージェントは「生データをデコードできません」と伝えます。私はカールを使用してエンドポイントをチェックし、正常に動作します。 APIゲートウェイとElastic BeansTalkエンドポイントの応答を比較すると、唯一の違いはAPI Gatewayの応答ではContent-Size通知が1バイト長くなることです。
いくつかの調査を行ったところ、Web上の一部の人々は、異なるバックエンドサービスと異なるエージェントを使用して同じ問題を発見しました。たとえば、hereは、SafariがFlickrにアクセスしようとしたときに同じ問題が発生したことを誰かに伝えます。この質問の回答では、問題は、サーバーによって挿入されたHttp Viaヘッダーに関連していると言われています。
API Gatewayの応答ヘッダーを確認しましたが、実際には応答がCloudfrontによって提供されたことを通知するViaヘッダーがあります。これが問題であるかどうかをテストするためにこのオプションを無効にするオプションを探しました。しかし、見つけられませんでした!
..だから、私の質問は以下のとおりです。
- 誰かが持つか、同じ問題を抱えていたのですか?
- 問題がVia Http Headerに関連している場合、誰かが私に教えてくれますか?
- APIゲートウェイでこのヘッダーを無効にすることはできますか?はいの場合、どのように?
APIゲートウェイからiOS生成SDKを使用していますか? –
いいえ!私は、foundationパッケージからhttpセッションオブジェクトを使用しています。私はiOS SDKで大きな問題を抱えていましたが、主にCognitoに関連しています... –