我收到此堆栈跟踪的异常
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:
它再次出现,奇怪的是我必须添加。