[英]I am getting HttpResponse but responce.getEntity().getContent() shows NullPointerException
[英]Why I am getting different HttpResponse than browser in android?
我试图从这个URL获得简单的HTTP响应: http : //realtorsipad.demowebsiteonline.net/eventsfeed.php
但令人惊讶的是,它没有返回预期的XML响应而是返回另一个HTML页面!
我无法理解什么是问题。
以下是示例活动:
public class MainActivity1 extends Activity {
String parsingWebURL = "http://realtorsipad.demowebsiteonline.net/eventsfeed.php";
String line = "";
Document docXML;
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
line = getXML();
System.out.println(line);
}
// ------------------------------------------------
public String getXML() {
String strXML = "";
try {
DefaultHttpClient httpClient = new DefaultHttpClient();
HttpPost httpPost = new HttpPost(parsingWebURL);
HttpResponse httpResponse = httpClient.execute(httpPost);
HttpEntity httpEntity = httpResponse.getEntity();
strXML = EntityUtils.toString(httpEntity);
return strXML;
} catch (Exception e1) {
e1.printStackTrace();
}
return strXML;
}
}
这不是您的代码本身,而是网站,当使用移动用户代理发出请求时,它会响应大量重定向。
要复制桌面浏览器,请更改用户代理字符串。 像这样:
public String getXML() {
String strXML = "";
try {
final HttpParams params = new BasicHttpParams();
HttpClientParams.setRedirecting(params, true);
HttpClientParams.setCookiePolicy(params, CookiePolicy.BROWSER_COMPATIBILITY);
DefaultHttpClient httpClient = new DefaultHttpClient(params);
httpClient.getParams().setParameter(CoreProtocolPNames.USER_AGENT, "Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:23.0) Gecko/20131011 Firefox/23.0");
HttpGet httpGet = new HttpGet(parsingWebURL);
HttpResponse httpResponse = httpClient.execute(httpGet);
HttpEntity httpEntity = httpResponse.getEntity();
strXML = EntityUtils.toString(httpEntity);
return strXML;
} catch (Exception e1) {
e1.printStackTrace();
}
return strXML;
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.