我想用HttpURLConnection实现web登录PHPWind v4.3.2论坛,
目前我已经实现成功登陆,但是我只能抓取到登陆后的那个跳转页面,而我实际上想登陆后能抓取成功登陆后的论坛的首页。我不知道怎么保持这个session,取cookie的值好像没有看到sessionId.
我最终想达到登陆奇兵或者无忧登陆的那种效果。最好不用HttpClient请赐教~!!不胜感激~!

解决方案 »

  1.   

    HttpURLConnection有点问题的。
    举个例子,服务器端我写jsp 校验你登陆后来个跳转reponse.sendRedirect()
    其实你用些抓包工具看看,它一般只是HTTP返回头SC_MOVED_TEMPORARILY,SC_MOVED_PERMANENTLY它会告诉你一个新的location让你去链接。HTTPURLConnection就好像有点笨了,它去链这个location但是它默认是不带cookies这样的东西的。
    似乎HttpUrlConnection是不能传默认request的cookies属性的. 如果服务器肯定可以把你kick调,
    因为你没有sessionid.你碰到的问题是获取到了那个跳转页面,可能是利用meta refresh这样的机制几秒之后,你自己解析那个html罗看看有没有meta refresh之类的标签的。建议还是用httpclient或者自己用socket来写,控制力要好很多。 httpclient对cookies的操作要简单很多。 而且要是有些服务器无聊默认都返回gzip压缩流过来, 你还要自己解码。httpclient还是很好用的
      

  2.   

    的确有meta refresh,跳到首页
    我连接首页没有效果,还是未登陆,我没有session,httpClient真的不好搞吗?
    怎么才能保持这个session呢?