weixin_42300515 2009-03-11 11:19
浏览 188
已采纳

java程序如何穿透代理访问外部网?(代码有错嘛,谢谢!)

[code="java"]package src.test;

import java.io.IOException;
import java.io.InputStream;
import java.net.HttpURLConnection;
import java.net.URL;

import sun.misc.BASE64Encoder;

public class URLTest {

public static void main(String[] args){
    try{
        System.setProperty("proxySet", "true");
        System.setProperty("http.proxyHost", "11.0.1.210");
        System.setProperty("http.proxyPort", "8080");

        URL u = new URL("http://www.baidu.com");
        HttpURLConnection conn = (HttpURLConnection)u.openConnection();

        String authentication = "caixian2:96191264";
        String encodedLogin = new BASE64Encoder().encodeBuffer(authentication.getBytes()); 
        conn.setRequestProperty("Proxy-Authorization", "Basic " + encodedLogin); 
        conn.connect();

        int length = conn.getContentLength();
        System.out.println(length);
        InputStream is = conn.getInputStream();
        byte[] b = new byte[4 * 1024];
        is.read(b);
        for(int i = 0; i < b.length; i++){
            System.out.print((char)b[i]);
        }
    }catch(IOException e){
        e.printStackTrace();
    }
}

}
[/code]
我在单位的内部网通过代理设置上网,现在想写个程序来访问外部网,在网上找了哈偶都资料,我个人感觉代码应该没有错误啊,可是就是报异常,如下:
[code="java"]java.lang.IllegalArgumentException: Illegal character(s) in message header value: Basic Y2FpeGlhbjI6OTYxOTEyNjQ=

at sun.net.www.protocol.http.HttpURLConnection.checkMessageHeader(HttpURLConnection.java:200)
at sun.net.www.protocol.http.HttpURLConnection.setRequestProperty(HttpURLConnection.java:1553)
at src.test.URLTest.main(URLTest.java:23)

Exception in thread "main" [/code]
高人们帮个忙,看看我哪里还写错了,非常感谢!!!

  • 写回答

1条回答 默认 最新

  • playfish05 2009-03-11 11:42
    关注

    看起来并不像是代理的错误,而是你encode的认证可能出了问题,导致http的header信息错误。对于这类程序,建议你用httpclient来做,有很多良好的封装可以直接调用。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥15 iOS 自定义输入法-第三方输入法
  • ¥15 很想要一个很好的答案或提示
  • ¥15 扫描项目中发现AndroidOS.Agent、Android/SmsThief.LI!tr
  • ¥15 怀疑手机被监控,请问怎么解决和防止
  • ¥15 Qt下使用tcp获取数据的详细操作
  • ¥15 idea右下角设置编码是灰色的
  • ¥15 全志H618ROM新增分区
  • ¥15 在grasshopper里DrawViewportWires更改预览后,禁用电池仍然显示
  • ¥15 NAO机器人的录音程序保存问题
  • ¥15 C#读写EXCEL文件,不同编译