gpt4 book ai didi

java - HttpClient 4.1 并不总是返回主机值

转载 作者:行者123 更新时间:2023-12-02 08:22:57 26 4
gpt4 key购买 nike

如果运行以下代码,完成后您将看到 URI 的 Host 值为“null”。这是无效的!执行请求后,它应该始终有一个 URI。

我试图在请求页面后从上下文中获取当前页面(以防发生重定向)。

对于造成的困惑,我深表歉意。我提到重定向是因为我认为这有助于更轻松地说明我的问题。下面的代码应该适用于重定向的页面和未重定向的页面。

插入您最喜欢的网站,没关系。最终的解决方案必须适用于任何网站......那些被重定向的网站和那些没有重定向的网站。

我错过了什么?

public static void main(String args[]) throws ClientProtocolException, IOException
{
HttpParams httpParams = new BasicHttpParams();
HttpClient httpclient = new DefaultHttpClient(httpParams);
HttpGet httpGet = new HttpGet("http://www.google.com/");
HttpContext context = new BasicHttpContext();
httpclient.execute(httpGet, context);
HttpUriRequest currentReq = (HttpUriRequest) context.getAttribute(ExecutionContext.HTTP_REQUEST);
System.out.println("New URI host (why is it null?): " + currentReq.getURI().getHost());
}

最佳答案

来自文档(http://hc.apache.org/httpcomponents-client-ga/tutorial/html/httpagent.html)

DefaultHttpClient httpclient = new DefaultHttpClient();

HttpContext localContext = new BasicHttpContext();
HttpGet httpget = new HttpGet("http://localhost:8080/");
HttpResponse response = httpclient.execute(httpget, localContext);
// here:
HttpHost target = (HttpHost) localContext.getAttribute(
ExecutionContext.HTTP_TARGET_HOST);

关于java - HttpClient 4.1 并不总是返回主机值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5127429/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com