HttpClient client = new HttpClient();
client.getState().setCookiePolicy(CookiePolicy.COMPATIBILITY);
// 1
GetMethod authget = new GetMethod("httpwww.sample.comsampleAppsample.rss");
try {
client.executeMethod(authget);
}
catch (HttpException httpe) {
httpe.printStackTrace();
}
catch (IOException ioe) {
ioe.printStackTrace();
}
// 2
NameValuePair[] data = new NameValuePair[2];
data[0] = new NameValuePair("j_username", username);
data[1] = new NameValuePair("j_password", password);
PostMethod authpost = new PostMethod("http://www.sample.com/sampleApp/j_security_check");
authpost.setRequestBody(data);
// 3
Header hCookie = authget.getRequestHeader("Cookie");
Header hHost = authget.getRequestHeader("Host");
Header hUserAgent = authget.getRequestHeader("User-Agent");
if (hCookie == null || hHost == null || hUserAgent == null) {
return null;
}
authpost.setRequestHeader(hCookie);
authpost.setRequestHeader(hHost);
authpost.setRequestHeader(hUserAgent);
authget.releaseConnection();
try {
client.executeMethod(authpost);
// 4
Header header = authpost.getResponseHeader("location");
if (header != null) {
String newuri = header.getValue();
GetMethod redirect = new GetMethod(newuri);
client.executeMethod(redirect);
// process the content from the response
redirect.releaseConnection();
}
} catch (HttpException httpe) {
httpe.printStackTrace();
return null;
} catch (IOException ioe) {
ioe.printStackTrace();
return null;
}
authpost.releaseConnection();
相关推荐
在HttpClient 3.x中,可以设置代理认证、状态管理和连接管理等操作,这些操作在4.x版本中有新的实现方式。程序员需要掌握如何使用`Credentials`和`AuthScope`来处理认证,以及如何配置代理服务器。 此外,迁移指南...
3. **配置HttpClient**:将自定义的SSLContext应用到HttpClient的HttpConnectionFactory。 ```java import org.apache.http.conn.ssl.SSLConnectionSocketFactory; import org.apache....
这个实例主要涉及如何配置HttpClient来忽略SSL(Secure Socket Layer)验证,这对于在开发和测试环境中处理自签名证书或未认证的服务器非常有用。以下将详细介绍HttpClient的使用以及如何进行SSL验证的忽略。 首先...
3. **身份验证和安全**:HttpClient支持多种身份验证机制,包括基本认证、摘要认证、NTLM等,并且可以与SSL/TLS协议结合,确保数据传输的安全性。 4. **重试和恢复策略**:HttpClient内置了重试和恢复策略,当网络...
6. **认证和安全**:HttpClient支持多种认证机制,包括基本认证、摘要认证、NTLM等。同时,它也可以处理HTTPS连接,配置SSL上下文以实现安全通信。 7. **异步编程**:HttpClient 4.5及以上版本引入了...
4. **认证和授权**:HttpClient支持多种认证机制,包括基本认证、摘要认证、NTLM和Kerberos,以及自定义认证策略。对于授权,它可以处理质询-响应认证流程。 5. **重试策略**:通过`HttpRequestRetryHandler`接口,...
总结来说,处理需要客户端认证的HTTPS接口需要理解SSL/TLS协议、HttpClient的内部工作原理以及如何自定义安全配置。通过`InstallCert.java`和`HTTPSSecureProtocolSocketFactory.java`这两个文件,我们可以实现这个...
接下来,我们需要创建一个HttpClient实例,同时配置它跳过SSL认证。这可以通过自定义`SSLContext`和`TrustStrategy`实现: ```java import javax.net.ssl.SSLContext; import javax.net.ssl.TrustManager; import ...
2. **认证和安全**:HttpClient支持多种认证机制,包括基本认证、摘要认证等。同时,它也支持HTTPS,提供了SSL/TLS的安全传输。 3. **重定向处理**:HttpClient可以自动处理HTTP状态码3xx的重定向,也可以手动控制...
3. **身份验证**:HttpClient支持多种身份验证机制,包括基本认证、摘要认证、NTLM、Kerberos等,能够处理跨域和多层代理的认证问题。 4. **Cookie管理**:HttpClient内置了Cookie管理器,可以处理服务器返回的...
3. **执行器服务(Executor Service)**:HttpClient 4.5引入了`Executors`概念,提供了一种灵活的方式来配置和控制执行HTTP请求的线程池。这有助于处理并发请求,并确保资源的有效利用。 4. **重试处理(Retry ...
3. **创建HttpClient对象**:配置好SSLContext后,将其应用到HttpClient实例上。使用`SSLConnectionSocketFactory`和`RegistryBuilder`来创建自定义的连接工厂。 ```java CloseableHttpClient httpClient = ...
3. **HttpClient 4.5的连接管理** HttpClient 4.5引入了`PoolingHttpClientConnectionManager`,它负责管理连接池,自动回收和复用连接。通过配置最大连接数、每个路由的最大连接数以及连接超时等参数,可以有效...
7. **认证和安全**:HttpClient支持基本认证、NTLM、Kerberos等多种认证机制,并且可以处理HTTPS连接,确保数据传输的安全。 8. **多部分表单提交(Multipart Form Data)**:对于POST请求,特别是上传文件时,...
在身份验证方面,HttpClient 4.1.2支持多种认证机制,如Basic认证、Digest认证、NTLM认证等。开发者只需提供相应的认证信息,HttpClient就能自动处理认证过程。 HttpClient 4.1.2也提供了对HTTPS的支持,包括证书...
6. **身份验证**:HttpClient支持多种身份验证机制,如基本认证、NTLM认证、digest认证等,可用于与需要身份验证的服务器通信。 7. **SSL/TLS支持**:HttpClient能够处理HTTPS连接,支持SSL和TLS安全协议,确保数据...
3. 重定向处理:HttpClient可以自动处理重定向,也可以自定义重定向策略。 4. 请求与响应处理:通过EntityUtils可以方便地处理请求和响应的实体内容,如读取、写入、转换等。 5. 异步请求:HttpClient提供异步执行...
9. **Authentication**:HttpClient支持多种认证机制,包括基本认证、NTLM、Kerberos等,可以使用`CredentialsProvider`和`Authenticator`进行配置。 10. **Timeouts**:可以设置连接超时、读取超时和写入超时,以...