本人在做Android项目时,遇到如下问题:httpResponse = client.execute(request, context); 在该句代码执行时总是报 IOException,并不是左右的网站请求都报这个错误,我已在AndroidMainfest.xml中添加如下代码:<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />请教高人,这是什么原因呢?
解决方案 »
- 更改应用程序图标无效,求教!100分相赠在线等!!
- 【求助】静态库链接失败问题,在线等,多谢啊
- 急!有关使用EXPANABLEDLISTVIEW及多线程下载暂停继续的问题
- 在android里实现一个日程显示的功能,求助下?
- java Socket程序移植到android上出错
- Broadcast问题,谁能解释一下啊~~100分
- android 对于txt怎样分页显示,不要滑动效果
- Unable to execute dex: java.nio.BufferOverflowException.
- 关于安卓
- 运行时传数据报错.帮看看.
- 关于webview对iframe的支持问题,特别求助!!
- webview中使用HttpURLConnection解析url出错
String result = null;
HttpResponse httpResponse = null;
if (null == client)
client = (DefaultHttpClient) getHttpsClient();
try {
HttpContext context = null;
if (null != ClearvaleClient.cookieStore) {
context = new BasicHttpContext();
context.setAttribute(ClientContext.COOKIE_STORE,
ClearvaleClient.cookieStore);
} httpResponse = client.execute(request, context);
int status = httpResponse.getStatusLine().getStatusCode();
if (status == HttpStatus.SC_OK) {
result = EntityUtils.toString(httpResponse.getEntity());
} else {
throw new FailException(status);
}
}
catch (HttpHostConnectException hce) {
System.out.println("HttpHostConnectException");
throw new ConnectionException(hce);
}
catch (ClientProtocolException e1) {
System.out.println("ClientProtocolException");
throw new ConnectionException(e1);
}
catch (IOException e1) {
System.out.println("IOException");
throw new ConnectionException(e1);
}
return result;
}以上是发送请求的详细代码,其中参数是这样传递的: HttpGet httpRequest = new HttpGet(finalURL); finalURL 为一个url请求地址,比如: finalURL: https://muran.cvtest.com/pg/cvapi/rest/json?auth_token=dec66c321786a26bb4567627d879e95e&limit=20&lang=zh
你在catch IOException之前,
catch(SocketTimeoutException e){
System.out.println("SocketTimeoutException");
throw new ConnectionException(hce);
}
试试
System.out.println("HttpHostConnectException");
throw new ConnectionException(hce);
}
catch (ClientProtocolException e1) {
System.out.println("ClientProtocolException");
throw new ConnectionException(e1);
}
catch(SocketTimeoutException e){
System.out.println("SocketTimeoutException");
throw new ConnectionException(e);
}
catch (IOException e1) {
System.out.println("IOException");
throw new ConnectionException(e1);
}
System.out.println("IOException");
// throw new ConnectionException(e1);
e1.printStackTrace();
}打印IOException信息,如下:06-04 14:34:00.827: W/System.err(7036): java.net.UnknownHostException: muraneco.cvtest.com
06-04 14:34:00.827: W/System.err(7036): at java.net.InetAddress.lookupHostByName(InetAddress.java:513)
06-04 14:34:00.834: W/System.err(7036): at java.net.InetAddress.getAllByNameImpl(InetAddress.java:278)
06-04 14:34:00.834: W/System.err(7036): at java.net.InetAddress.getAllByName(InetAddress.java:242)
06-04 14:34:00.834: W/System.err(7036): at org.apache.http.impl.conn.DefaultClientConnectionOperator.openConnection(DefaultClientConnectionOperator.java:140)
06-04 14:34:00.834: W/System.err(7036): at org.apache.http.impl.conn.AbstractPoolEntry.open(AbstractPoolEntry.java:164)
06-04 14:34:00.834: W/System.err(7036): at org.apache.http.impl.conn.AbstractPooledConnAdapter.open(AbstractPooledConnAdapter.java:119)
06-04 14:34:00.842: W/System.err(7036): at org.apache.http.impl.client.DefaultRequestDirector.execute(DefaultRequestDirector.java:352)
06-04 14:34:00.842: W/System.err(7036): at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:555)
06-04 14:34:00.850: W/System.err(7036): at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:487)
06-04 14:34:00.850: W/System.err(7036): at com.broadvision.clearvale.http.client.ClearvaleClient.doRequest(ClearvaleClient.java:225)
06-04 14:34:00.850: W/System.err(7036): at com.broadvision.clearvale.http.client.ClearvaleClient.doGet(ClearvaleClient.java:186)
06-04 14:34:00.858: W/System.err(7036): at com.broadvision.clearvale.service.CommunityDAO.getCommunitiesForUser(CommunityDAO.java:94)
06-04 14:34:00.858: W/System.err(7036): at com.broadvision.clearvale.activities.communities.CommunitiesListActivity.getCommunities(CommunitiesListActivity.java:139)
06-04 14:34:00.858: W/System.err(7036): at com.broadvision.clearvale.activities.communities.CommunitiesListActivity.access$12(CommunitiesListActivity.java:138)
06-04 14:34:00.858: W/System.err(7036): at com.broadvision.clearvale.activities.communities.CommunitiesListActivity$2.run(CommunitiesListActivity.java:110)这是打印出来的log信息,奇怪的是,我访问的是 muraneco01.cvtest.com, 现在却报: java.net.UnknownHostException: muraneco.cvtest.com,请求指向:muraneco.cvtest.com神马原因呢?!
2 如果在主线中 需要StrictMode.enableDefaults();
或者把你的代码移动其它非主线程中去