HttpClient发布4.0了 而且底层完全重写了,据说无论是效率还是结构都有质的飞跃。
现在也要与时具进,研究研究。
package test.httpclient4.proxy;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import org.apache.http.HttpEntity;
import org.apache.http.HttpHost;
import org.apache.http.HttpResponse;
import org.apache.http.HttpStatus;
import org.apache.http.auth.AuthScope;
import org.apache.http.auth.UsernamePasswordCredentials;
import org.apache.http.client.ClientProtocolException;
import org.apache.http.client.CredentialsProvider;
import org.apache.http.client.HttpClient;
import org.apache.http.client.methods.HttpGet;
import org.apache.http.conn.params.ConnRoutePNames;
import org.apache.http.impl.client.BasicCredentialsProvider;
import org.apache.http.impl.client.DefaultHttpClient;
import org.apache.http.util.EntityUtils;
public class GetHttpByProxyCredentials {
/**
* @param args
* @throws IOException
* @throws ClientProtocolException
*/
public static void main(String[] args) throws ClientProtocolException, IOException {
//实例化一个HttpClient
HttpClient httpClient = new DefaultHttpClient();
//设定目标站点
HttpHost httpHost = new HttpHost("www.shanhe114.com");
//设置代理对象 ip/代理名称,端口
HttpHost proxy = new HttpHost("proxy.tt", 8080);
//实例化验证
CredentialsProvider credsProvider = new BasicCredentialsProvider();
//设定验证内容
UsernamePasswordCredentials creds = new UsernamePasswordCredentials("fttj", "ft07");
//创建验证
credsProvider.setCredentials(
new AuthScope(AuthScope.ANY_HOST, AuthScope.ANY_PORT),
creds);
httpClient.getParams().setParameter(ConnRoutePNames.DEFAULT_PROXY, proxy);
((DefaultHttpClient)httpClient).setCredentialsProvider(credsProvider);
// 目标地址
HttpGet httpget = new HttpGet("/");
// 执行
HttpResponse response = httpClient.execute(httpHost, httpget);
if(HttpStatus.SC_OK==response.getStatusLine().getStatusCode()){
//请求成功
//取得请求内容
HttpEntity entity = response.getEntity();
//显示内容
if (entity != null) {
// 显示结果
System.out.println(EntityUtils.toString(entity,"utf-8"));
}
if (entity != null) {
entity.consumeContent();
}
}
}
}
长春都市网
分享到:
相关推荐
**2.8 HttpClient 代理配置:** HttpClient支持通过配置代理服务器来转发请求,这对于处于防火墙后的客户端特别有用。 #### 三、HTTP状态管理 **3.1 HTTP Cookies:** Cookie是服务器存储在客户端的小型文本文件,...
8. **代理支持**:如果需要通过代理服务器访问网络,HTTPClient可以配置代理设置,包括基本认证和NTLM认证。 9. **国际化与编码处理**:库内支持多种字符集和编码方式,可以正确处理各种语言的URL和请求内容。 10....
6. **认证机制**:支持多种认证机制,包括基本认证、摘要认证、NTLM等,方便处理跨域访问的安全问题。 7. **重试策略**:具备自动重试机制,对于短暂的网络故障,HttpClient会尝试重新发送请求。 三、HttpClient ...
- 支持HTTP认证、代理服务器等高级功能。 - 内置错误处理机制,提高程序的健壮性。 - 可以进行定制化配置,满足不同场景需求。 **HtmlParser简介** `HtmlParser`是另一个重要的开源库,专门用于解析HTML文档。随着...
7. **代理设置**:有时需要通过代理服务器访问网页,模块应支持设置HTTP/HTTPS代理,并处理相应的认证需求。 8. **错误处理**:当遇到网络错误、超时或其他问题时,模块应能优雅地处理并提供有用的错误信息。 9. *...
在某些情况下,网络访问可能需要通过代理服务器,比如在企业网络环境中或者为了匿名性。`HttpAndHttpsProxy.java`很可能实现了通过代理进行HTTP和HTTPS请求的功能。这可能涉及到配置代理的主机名、端口,以及可能的...
6. **HttpClient Context**:存储请求上下文信息,如认证、重定向策略、连接管理器等,方便在不同请求之间共享状态。 使用这两个库,开发者可以轻松地构建一个功能完备的Java网络爬虫。例如,可以使用HttpClient...
FTP的目标是:(1)提高文件的共享性(计算机程序和/或数据),(2)鼓励间接地(通过程序)使用远程计算机,(3)保护用户因主机之间的文件存储系统导致的变化,(4)为了可靠和高效地传输,虽然用户可以在终端上...
通过创建一个代理类,VB应用程序可以像调用本地方法一样调用Web服务的方法。这通常涉及使用ServiceReference或Add Web Reference工具添加服务引用。 5. **FTP操作**: 对于文件传输,VB可以使用FTP协议。在VB.NET...