我收到此堆栈跟踪的异常
Exception in thread "main" java.lang.IllegalStateException: Already connected
at sun.net.www.protocol.http.HttpURLConnection.setRequestProperty(HttpURLConnection.java:2410)
at sun.net.www.protocol.https.HttpsURLConnectionImpl.setRequestProperty(HttpsURLConnectionImpl.java:296)
at com.hello.world.CookieManager.setCookies(CookieManager.java:124)
at com.hello.world.HttpHandler.PostHttps(HttpHandler.java:101)
这些是HttpHandler.PostHttps
中的行URL url = new URL("https://www.example.com/");
HttpsURLConnection httpsConn = (HttpsURLConnection)url.openConnection();
cm.setCookies(httpsConn);
这些是CookieManager.setCookies
中的那些String cookieStr = "name=value";
httpsConn.setRequestProperty("Cookie", cookieStr);
我知道在连接打开时我无法设置cookie标头。但我不会在连接的对象上调用任何东西,除了使用openConnection()初始化对象然后添加cookie。
我也知道调用其他一些方法(如getHeaderFiles或运行流)会打开连接,并且不会调用这样的方法。
修改
我使用的是JDK 1.6.0.39我下载了最新版本1.7.0.51并修复了它。圈 毕竟这是一个版本问题。
编辑2:
它又出现了,奇怪的是我要补充一下。