使用org.apache.http的http相关类,导致应用崩溃。
问题描述:
在android studio 环境下接入图灵机器人的api,我另外开了一个线程来处理网络数据的读取。在使用另一个调用了org.Apache.http的 几个类时,显示 HttpClient ,HttpGet,HttpResponse,HttpEntity 都已经过时(即一条横线划掉类名)。而且程序在点击按钮(触发与网络端读取数据的交互动作)的时候,程序崩溃。我再logcat里面发现是doInBackground类进入异常抛出,以下是相关的主要代码部分:
private HttpClient mHttpClient;
private HttpGet mhttpGet;
private HttpResponse mHttpResponse;
private HttpEntity mHttpEntity;
@Override
protected String doInBackground(String... params) {
try{
mHttpClient = new DefaultHttpClient();
mhttpGet = new HttpGet(url);
mHttpResponse = mHttpClient.execute(mhttpGet);
mHttpEntity = mHttpResponse.getEntity();
in = mHttpEntity.getContent();
System.out.println("**********************"); //调试信息,未被打印
BufferedReader br = new BufferedReader(new InputStreamReader(in));
String line = null;
StringBuffer sb = new StringBuffer();
while ((line = br.readLine()) != null){
sb.append(line);
}
return sb.toString();
}catch (Exception e){ //有异常
System.out.println("################################"); //调试信息,该条调试信息在logcat中被打出
}
return null;
}
我再网上搜了一下,发现有几个朋友说这个在模拟器测试不行,但在2.3手机上测试正常,在4.X手机测试失败。都不知道原因。所以请大神帮忙答疑解惑,小板凳长期等候解答。