2

サーバーと通信するアプリに取り組んでいます。サーバー側のライブラリの1つにバグがあります。このバグにより、ホストと一緒にポートを送信する必要があります。

問題は、リクエストを送信しているときに、ポートが削除されているように見えることです。私はもともとHTTPClientを使用していて、そのようにヘッダーを設定していました

httpClient.addHeader(new BasicHeader("Host", "company.net:80"));

しかし、サーバー側では「company.net」しか受信しませんでした

私もそのようなrequestInterceptorを使ってみました

        httpClient.addRequestInterceptor(new HttpRequestInterceptor() {

            public void process(
                    final HttpRequest request,
                    final HttpContext context) throws HttpException, IOException {
                request.setHeader("Host", "company.net:80");
                Log.i(TAG, "intercepted and set host header");
            }
        });

しかし、残念ながら、同じ問題が発生しました。

私の最後の試みは、httpClientの代わりにURLConnectionを使用することでした

    urlConnection.addRequestProperty("Host", "company.net:80");

あなたはおそらく結果を推測することができます。

ポートを含むホストを送信するにはどうすればよいですか?

4

1 に答える 1

1

これは、リクエストを送信する直前に実際に送信先のホストにホストヘッダーを設定するという点で、 HttpClientここを参照)のデフォルトの動作のようです。ポート80はデフォルトのHTTPポートであるため、そのバージョンのホストには含まれていません。リンクにあるメソッドを試して、それでうまくいくかどうかを確認できます。

于 2012-05-22T10:43:44.657 に答える