【发布时间】:2013-08-01 02:40:43
【问题描述】:
我正在尝试使用HttpsURLConnection 发出 POST 请求,然后得到
java.net.ProtocolException: Connection already established
在 setRequestMethod 上奇怪的是,conn.connected 刚刚返回 false。
我错过了什么?
URL url = new URL("https://ws.audioscrobbler.com/2.0/");
HttpsURLConnection conn = (HttpsURLConnection) url.openConnection();
conn.setReadTimeout(15000);
conn.setConnectTimeout(15000);
// here conn.connected is false
conn.setRequestMethod("POST"); // here I get java.net.ProtocolException: Connection already established
conn.setDoInput(true);
编辑
我尝试了 DefaultHttpClient 并且它有效,所以我将使用它。
【问题讨论】:
-
在 Java 中工作。
conn.connected是什么?你确定这就是所有的代码吗? -
developer.android.com/reference/java/net/…。还有更多代码,但在返回异常的行之后。这适用于
HttpURLConnection(不是 https),并且适用于使用DefaultHttpClient的 https。 -
你能解释一下你是如何使用
conn.connected的吗?据我所知,在你做url.openConnection()的那一刻,你已经建立了连接。请注意url.openConnection()返回URLConnection而不是HttpsURLConnection的事实。 -
我在
conn.setRequestMethod("POST");上设置断点并检查conn的成员。 -
@haike00 否。TCP 连接在您第一次调用
getOutputStream(),getInputStream(),或getResponseCode(),之一时建立,除非它是已建立的池连接。
标签: android httpsurlconnection