我这里的代理服务器是不需要用户名和密码的,用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

解决方案 »

  1.   

    代理服务器的流程是直接把对某网站的http的请求发到代理服务器的某个端口,由代理服务器去访问这个网页,把结果给你。
    如果用socket实现,流程是
    Socket s = new Socket("代理服务器IP","代理服务器端口");
    s.getOutputStream().write("GET http://xxxxxx……");//具体去看http协议,或者自己开个服务端,在ie里设置代理,然后随便访问个网页,看服务端接收的数据
    ………………//后面的代码懒得写了
      

  2.   

    楼上的,我想使用apache开源的HttpClient项目来设置代理服务器的访问啊
      

  3.   

    httpclient  是作什么的?
      

  4.   

    HostConfiguration hcf = new HostConfiguration();
                
             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"));