发送请求时删除端口

时间:2012-05-22 10:30:50

标签: android apache

我正在开发一个与我们的服务器通信的应用程序。服务器端的其中一个库中存在错误。此错误使得需要将端口与主机一起发送。

问题在于,当我发送请求时,端口似乎被条带化了。我最初使用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");
            }
        });

但是,唉,同样的问题发生了。

我最后的尝试是使用URLConnection而不是httpClient

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

你可能猜到了结果。

如何发送包含端口的主机?

1 个答案:

答案 0 :(得分:1)

这似乎是HttpClient的默认行为(请参阅here),因为它在发送请求之前将主机标头设置为您实际发送给它的主机。由于端口80是默认的HTTP端口,因此它不会在其Host版本中包含它。您可以尝试链接中的方法,看看是否适合您。