刚才测试代码时,报了如下的错误消息:
04-23 14:09:18.608: E/InputDispatcher(99): channel '405fd468 cn.jbit.NewsManager/cn.jbit.NewsManager.NewsManagerActivity (server)' ~Channel is unrecoverably broken and will be disposed!
由于前面写代码时,遇到过类似的错误消息,这次遇到就得心应手了,从错误的消息来看,可以确定是代码中某个有数据输入的地方写错了,于是,找到我刚才的代码中,有数据输入的地方,详见下边:
/***
* 利用GET方式 提交 数据
* @param strtitle
* @param strauthor
* @param string
* @return
* @throws Exception
*/
public static boolean saveByGET(String strtitle, String strauthor) throws Exception {
StringBuffer buffer =new StringBuffer();
buffer.append("?title=").append(URLEncoder.encode(strtitle, "UTF-8")+"&author=").append(URLEncoder.encode(strauthor, "UTF-8"));
URL url =new URL("http://192.168.137.1/JspUnit2/NewsAddServlet"+buffer.toString());
HttpURLConnection conn =(HttpURLConnection)url.openConnection();
conn.setConnectTimeout(5000);
conn.setRequestMethod("GET");
if(conn.getResponseCode()==200){
return true;
}
return false;
}
一看,上面的代码中,红色部分中少了:8080,不知道,自己当时是怎么了,把这个给写漏了,正确的代码应该是:URL url =newURL("http://192.168.137.1:8080/JspUnit2/NewsAddServlet"+buffer.toString());
改正后,就不在报那个错了,从这几次,报这个错误消息的情况来看,如果程序报Channel is unrecoverably broken and will be disposed!时,首先可以考虑是不是代码中某个有数据输入或是有数据输出的地方,写错了代码。
类似的文章,我的android开发原创里还有两篇文章,可进行对比,标题分别是:1.Channel is unrecoverably broken and will be disposed!,2.Consumer closed input channel or an error occurred. events=0x8
希望对你有所帮助!