我使用Apache httpclient和httpcore在我的项目中实现HTTP请求。 最近我发现了这个问题:我有一个方法用这个身体
CloseableHttpClient httpclient = HttpClients.createDefault();
try {
HttpGet httpGet = new HttpGet(URL);
CloseableHttpResponse response = httpclient.execute(httpGet);
Header[] h = response.getAllHeaders();
for (int i = 0; i < h.length; i++) {
System.out.println(h[i].getName());
}
System.out.println(response.getStatusLine().getStatusCode());
HttpEntity entity = response.getEntity();
InputStream content = entity.getContent();
System.out.println(entity.getContentLength());
org.jsoup.nodes.Document doc = Jsoup
.parse(convertStreamToString(content));
System.out.println(convertStreamToString(content));
EntityUtils.consume(entity);
} catch (UnsupportedEncodingException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
} catch (ClientProtocolException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
} catch (IOException e2) {
// TODO Auto-generated catch block
e2.printStackTrace();
}
使用有效的网址,但内容为空,状态代码为200。
我尝试使用firefox插件RESTClient和一个具有相同URL的简单GET请求,并且没有标题可用(内容响应不是空的)。
同样重新发送带有firefox调试器的Get请求(此时默认标头已经存在)。
Ps:我显然尝试添加所有标题但没有:(
有人可以帮助我使用Apache组件吗?
答案 0 :(得分:0)
我解决了:方法convertStreamToString(内容)编辑了内容所以足够只调用一次方法(或者使用其他变量obv)。