我这里的代理服务器是不需要用户名和密码的,用System类设置是这样的
System.setProperty("proxySet", "true");
System.setProperty("proxyHost", "***.***.*.*");
System.setProperty("proxyPort", "8080");
但是在HttpClient里设置后连接网站却报错,下面是代码:HttpClient httpClient = new HttpClient();
httpClient.getHostConfiguration().setProxyHost(
new ProxyHost("***.***.*.*", 8080));
GetMethod get = new GetMethod(strDomain);
System.out.println(new String(get.getResponseBody(), "UTF-8"));
try {
httpClient.executeMethod(get);
} catch (HttpException e) {
} catch (IOException e) {
}报错:2006-4-17 16:57:43 org.apache.commons.httpclient.auth.AuthChallengeProcessor selectAuthScheme
信息: ntlm authentication scheme selected2006-4-17 16:57:43 org.apache.commons.httpclient.HttpMethodDirector processProxyAuthChallenge
信息: No credentials available for NTLM <any realm>@***.***.*.*:8080
System.setProperty("proxySet", "true");
System.setProperty("proxyHost", "***.***.*.*");
System.setProperty("proxyPort", "8080");
但是在HttpClient里设置后连接网站却报错,下面是代码:HttpClient httpClient = new HttpClient();
httpClient.getHostConfiguration().setProxyHost(
new ProxyHost("***.***.*.*", 8080));
GetMethod get = new GetMethod(strDomain);
System.out.println(new String(get.getResponseBody(), "UTF-8"));
try {
httpClient.executeMethod(get);
} catch (HttpException e) {
} catch (IOException e) {
}报错:2006-4-17 16:57:43 org.apache.commons.httpclient.auth.AuthChallengeProcessor selectAuthScheme
信息: ntlm authentication scheme selected2006-4-17 16:57:43 org.apache.commons.httpclient.HttpMethodDirector processProxyAuthChallenge
信息: No credentials available for NTLM <any realm>@***.***.*.*:8080
如果用socket实现,流程是
Socket s = new Socket("代理服务器IP","代理服务器端口");
s.getOutputStream().write("GET http://xxxxxx……");//具体去看http协议,或者自己开个服务端,在ie里设置代理,然后随便访问个网页,看服务端接收的数据
………………//后面的代码懒得写了
hcf.setHost(MyMultiClient.BASE_URL,8080);
hcf.setProxy(proxyHost,proxyPort);
getMethod = new GetMethod("/testJsp.jsp?id=" + id);
int status = httpClient.executeMethod(hcf,getMethod);
byte[] bytes = getMethod.getResponseBody();
System.out.println("downloaded : " + new String(bytes,"GBK"));