使用代理需要导入:commons-logging-1.1.jar,httpclient-4.0-beta2.jar ,httpcore-4.1-alpha1.jar 和 commons-codec-1.4.jar架包。
在连接代理时需要使用用户名和密码构造UsernamePasswordCredentials对象并作为参数传递给HttpClient对象。
具体用法如下:
public static void main(String args[]){
StringBuffer sb = new StringBuffer()
//创建HttpClient实例
HttpClient client = getHttpClient()
//创建httpGet
HttpGet httpGet = new HttpGet("http://www.csdn.net")
//执行
try {
HttpResponse response = client.execute(httpGet)
HttpEntity entry = response.getEntity()
if(entry != null)
{
InputStreamReader is = new InputStreamReader(entry.getContent())
BufferedReader br = new BufferedReader(is)
String str = null
while((str = br.readLine()) != null)
{
sb.append(str.trim())
}
br.close()
}
} catch (ClientProtocolException e) {
// TODO Auto-generated catch block
e.printStackTrace()
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace()
}
System.out.println(sb.toString())
}
//设置代理
public static HttpClient getHttpClient() {
DefaultHttpClient httpClient = new DefaultHttpClient()
String proxyHost = "proxycn2.huawei.com"
int proxyPort = 8080
String userName = "china\\******"
String password = "*******“
httpClient.getCredentialsProvider().setCredentials(
new AuthScope(proxyHost, proxyPort),
new UsernamePasswordCredentials(userName, password))
HttpHost proxy = new HttpHost(proxyHost,proxyPort)
httpClient.getParams().setParameter(ConnRouteParams.DEFAULT_PROXY, proxy)
return httpClient
}
下面是我之前做过的 Get 请求时用的,代理的代码,是可行var req = WebRequest.Create(url) as HttpWebRequest
// 设置代理
var /w/e/b/P/r/o/x/y = new /W/e/b/P/r/o/x/y(代理 Ip, 代理端口)
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)