日期:2014-05-20  浏览次数:20822 次

求设置http代理的代码怎么写啊?
Java code

import java.applet.Applet;
import java.awt.Frame;
import java.awt.TextArea;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.net.MalformedURLException;
import java.net.URL;

public class test extends Applet {

    URL url;
    
    TextArea showarea = new TextArea("下载的数据");
    
    
    public void init() {
        
        String strurl = "http://www.163.com";
        
        try {
            url=new URL(strurl);
        } catch (MalformedURLException e) {
        
            e.printStackTrace();
        }
        
        add(showarea);
        
    }

    
    public void start() {
        
        InputStream filecon =null;
        BufferedReader filedata =null;
        String line;
        try {
            filecon = url.openStream();
            filedata = new BufferedReader(new InputStreamReader(filecon));
            while ((line = filedata.readLine())!=null) {
                showarea.append(line+"\n");
            }
                        
        } catch (IOException e) {
            // TODO 自动生成 catch 块
            e.printStackTrace();
        }
        
    }

    public static void main(String[] args) {
         Frame f = new Frame("URL Test");
         
         Applet ap =new test();
         ap.init();
         f.add(ap);
         f.addWindowListener(new WindowAdapter(){

            @Override
            public void windowClosing(WindowEvent arg0) {
                // TODO 自动生成方法存根
                System.exit(0);
            }
             
         });
        f.setSize(400,300);
        f.setVisible(true);
        ap.start();

    }

}




这是书上的一个下载页面内容的程序 但是我的浏览器有代理 程序中的设置代理的代码该怎么写啊?
我的代理设置192.168.1.254 :808 求代码
上午发的帖子不能恢复了 只好重发一个

------解决方案--------------------
http://www.jiataiit.com/View_Articles.asp?ID=52
------解决方案--------------------
java -Dhttp.proxyHost=localhost -Dhttp.proxyPort=8888 ....这样就可以指定代理为本机的8888为代理端口



访问URL.openConnection时就会自动使用上述代理,但是如果URL中是访问localhost的,则一定不通过代理
------解决方案--------------------
Java code

   // 根据地址 url 打开 Http 连接 
  HttpURLConnection con = (HttpURLConnection)( new URL( url ) ).openConnection(); 
  if (proxy.hASProxy()) { 
  // 注重: 假如 proxySet 为 false 时,依然设置了 proxyHost 和 proxyPort,代理设置仍会起作用。 
  // 假如 proxyPort 设置有问题,代理设置不会起作用。 
  System.getProperties().put( "proxySet", "true" ); 
  System.getProperties().put( "proxyHost", proxy.getProxyHost() ); 
  System.getProperties().put( "proxyPort", String.valueOf( proxy.getProxyPort() ) ); 
  
  // 假如需要代理服务器验证,在 Http 请求头中加入 Proxy-Authorization 头, 
  // 格式为: "Basic " + ("代理服务器用户名:密码"的 BASE64 编码) 
  if (proxy.needAuth()) { 
  con.setRequestProperty( "Proxy-Authorization", "Basic " + Encoder.base64Encode( proxy.getProxyUser() + ":" + proxy.getProxyPass() ) ); 
  } 
  }