解决方法如下:
第一次和服务器发起POST或是GET请求以后,通过getHeaderField方法获得SessionID,具体方法为:
String session_value=getHeaderField("Set-Cookie");
这里得到的session_value可能不全是sessionId,还包含其他内容,用正则或者其他方法获得session_value中的 sessionId的值就可以了
第二次发起POST或是GET请求的时候需要把刚才获得的SessionID放置在请求的头部然后再提交,这样就能服务器就会认为是同一个Session 请求了,具体方法为:
setRequestProperty("Cookie", session_value);
这样就实现了保存session向服务器提交请求
实例代码:
URL url = new URL(link);
HttpURLConnection urlConnection = (HttpURLConnection) url.openConnection();
//获得session信息
session_value = urlConnection.getHeaderField("Set-Cookie");
String[] sessionId = session_value.split(";");
//保存session信息
urlConnection.setRequestProperty("Cookie", sessionId[0])
相关推荐
总结来说,Java实现多次HttpURLConnection共享session的关键在于正确处理Cookie,保存服务器返回的Session ID,并在后续请求中携带这个ID。通过这种方式,即使没有浏览器环境,也能模拟登录状态,爬取登录后的内容。...
在上面的示例中,我们通过`openConnection()`方法创建了一个`URLConnection`实例,并设置了`Accept-Charset`请求头,以指定客户端期望接收的数据编码方式。如果无需发送参数或请求头,则可以简化为`new URL(url)....
若需使用POST或其他方法,需调用setRequestMethod()方法。此外,可以设置其他请求头,如User-Agent,Content-Type等。 ```java connection.setRequestMethod("GET"); connection.setRequestProperty("User-Agent", ...
如果有参数,可以通过`openConnection()`返回的URLConnection对象建立连接,发送GET或POST请求。GET请求通常用于获取信息,而POST请求用于提交数据。 其次,文章详细讲解了使用Apache HttpClient访问Web应用。...
3. 将URLConnection设置为POST或GET模式,通过setRequestMethod方法。 4. 如果是POST请求,设置允许输出,并通过OutputStream写入请求体数据。 5. 设置请求头,如Content-Type(JSON、Form Data等)和Accept。 6. ...
使用HttpURLConnection进行HTTPS访问需要设置信任所有证书,因为默认情况下,Android不会信任自签名或未受信任的证书。以下是一个简单的示例: 1. 创建SSLContext并设置信任所有证书: ```java TrustManager[] ...
7. **HTTP客户端编程**:Java的HttpURLConnection或第三方库如Apache HttpClient,可以方便地实现HTTP客户端功能。我们将学习如何发送GET和POST请求,处理响应,并处理cookies和session。 8. **HTTPS安全通信**:...
1. **Java基础**:源码中会涉及到Java基本语法,如类、对象、方法、异常处理、数据类型等。理解这些基础知识是阅读和运行爬虫代码的前提。 2. **网络编程**:Java网络爬虫需要使用Java的Socket编程或者...
- EJB:企业级JavaBean,包括Session Bean和Message Driven Bean。 12. **设计模式** - 单例模式、工厂模式、观察者模式等常见设计模式的Java实现。 这些源代码示例为开发者提供了丰富的实践机会,通过对这些...
9. **网络权限**:在某些情况下,网站可能会有反爬虫机制,需要处理验证码、cookies或session,或者使用代理IP进行访问。 10. **日志记录**:为了追踪程序运行情况,通常会集成日志框架如Log4j或java.util.logging...
6. Basic, Digest, NTLMv1, NTLMv2, NTLM2 Session, SNPNEGO/Kerberos认证方案。 7. 插件式的自定义认证方案。 8. 便携可靠的套接字工厂使它更容易的使用第三方解决方案。 9. 连接管理器支持多线程应用。支持设置...