2

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

问题是当我发送请求时,端口似乎被剥离了。我最初使用 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");

你大概可以猜到结果。

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

4

1 回答 1

1

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

于 2012-05-22T10:43:44.657 回答