我正在尝试登录网页,但在此之前,我正在使用HttpGet加载页面,这是返回的行,
ÓA;
这就是我所能放的,不会让我粘贴任何其他角色。但他们都是这样,就像我在某种程度上得到错误的编码?这是我用来获取的代码
HttpGet httpget = new HttpGet(url);
if(headers == null) {
headers = getDefaultHeaders();
}
for(String s : headers.keySet()) {
httpget.addHeader(s, headers.get(s));
}
HttpResponse response = getClient().execute(httpget);
HttpEntity entity = response.getEntity();
System.out.println("Status Line: " + response.getStatusLine());
if (entity != null) {
InputStream input = entity.getContent();
BufferedReader reader = new BufferedReader(new InputStreamReader(input));
String ln = "";
while((ln = reader.readLine()) != null) {
System.out.println("During Get - " + ln);
}
}
我做错了什么?
感谢您的帮助。
如果您需要更多信息,例如标题,请询问。
答案 0 :(得分:2)
以下行可能是您遇到问题的原因:
BufferedReader reader = new BufferedReader(new InputStreamReader(input));
您正在使用平台的默认字符集创建阅读器,并完全忽略可能在HTTP响应标头中指定的任何字符集。
如果在以正确的方式阅读内容时遇到同样的问题,则服务器可能因未正确设置响应标头而出错。
答案 1 :(得分:1)
实体是这样读的:
String content = org.apache.http.util.EntityUtils.toString( entity );
System.out.println(content);
这将为您全部阅读,以便您可以查看实际返回的内容。
答案 2 :(得分:0)
确保您没有使用简单的HTTP连接意外转到端口443。因为在这种情况下,您将返回SSL握手而不是HTTP响应。