我正在研究
Scala中的网站抓取应用程序.我正在抓取的网站是面向会话的,所以我必须先访问网站一次以获得会话ID,然后我才能做其他事情.
我得到连接以检索会话ID,如下所示:
url.openConnection().asInstanceOf[HttpURLConnection]
它工作正常.返回的HttpURLConnection的.connected字段为false,当我调用.connect()时它会翻转为true.没问题.
当我完成连接并在其上调用.disconnect()时,会出现第一个故障提示. .connected字段保持为真.嗯.
所以现在我已经获得了会话ID,并且我将获得具有我想要的表单的页面.我打电话
url.openConnection().asInstanceOf[HttpURLConnection]
再次,就像上次一样 – 事实上相同的代码 – 除了这次它给我的HttpURLConnection将.connected字段设置为true!我一开始以为它以某种方式给了我之前给它的同一个对象,但不,内存ID是不同的.
所以当然现在当我在连接上调用.setRequestProperty()时,它会出现IllegalStateException:已经连接.
我误解了如何使用HttpURLConnection吗?
注意:Scala 2.9.2,Java 6.0.另外,我调用.openConnection()的URL对象是不同的对象,不一样.
谢谢…
最佳答案 它被称为连接池,用于寻求HTTP Keep-alive.很好.你想要它.如果你真的没有,请调用disconnect()方法.