jul*_*jul 11 android httpurlconnection
我正在尝试使用HttpURLClient使用HttpRestClient下面显示的类将一些POST数据发送到服务器.执行时
conn.setDoInput(true);
Run Code Online (Sandbox Code Playgroud)
我明白了
java.lang.IllegalStateException: Already connected
Run Code Online (Sandbox Code Playgroud)
我卸载了应用程序,仍然得到相同的错误.
在所有示例中,我都看到过之前调用过openConnection setDoInput.如果顾名思义,openConnection打开一个连接,它应该永远不会在`setDoInput之前使用,对吗?我错过了什么?
也许在某些时候它在执行之前崩溃了disconnect.这可能是原因吗?如果是这样,我该如何断开旧连接?
public class HttpRestClient {
static public int post(String urlStr, List<NameValuePair> data){
HttpURLConnection conn = null;
try {
URL url = new URL(urlStr);
conn = (HttpURLConnection) url.openConnection();
conn.setDoInput(true);
conn.setDoOutput(true);
conn.setRequestMethod("POST");
OutputStream os = conn.getOutputStream();
BufferedWriter writer = new BufferedWriter(
new OutputStreamWriter(os, "UTF-8"));
writer.write(getQuery(data));
writer.flush();
writer.close();
os.close();
InputStream is = conn.getInputStream();
String dude = readIt(is);
return 1;
} catch (MalformedURLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
return 0;
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
return 0;
}
finally {
if(conn!=null) conn.disconnect();
}
}
}
Run Code Online (Sandbox Code Playgroud)
这可能是一个误导性的例外。请参阅 Jersey-2 https://java.net/jira/browse/JERSEY-2729的此缺陷
链接已更新: https ://github.com/javaee/jersey/issues/3001
基本上问题是球衣抛出无效异常。在我的例子中,真正的问题是服务器拒绝连接。
| 归档时间: |
|
| 查看次数: |
19442 次 |
| 最近记录: |