【问题标题】:Proxy With Java URLConnection class带有 Java URLConnection 类的代理
【发布时间】:2012-01-06 02:02:22
【问题描述】:

我对 Java 很陌生。我正在为调用 REST API 使用以下代码,它在简单的环境中工作正常,但是当我与代理环境一起使用时,它会抛出 NullPointerException。我在谷歌上找到了我们必须为此设置代理设置的结果。我根据那篇 http://www.javaworld.com/javaworld/javatips/jw-javatip42.html 文章设置了代理,但这不起作用 + base64Encode(password) 创建语法错误。

URL url = new URL("http://examplerestapi/get/user");
URLConnection yc = url.openConnection();



in = new BufferedReader(new InputStreamReader(yc.getInputStream()));
String inputLine;

while ((inputLine = in.readLine()) != null) {
       sb.append(inputLine);
}

String res = sb.toString();

请帮我设置代理主机、端口、用户名和密码。

【问题讨论】:

    标签: java proxy urlconnection


    【解决方案1】:

    我怀疑您的NullPointerException 正在发生,因为yc.getInputStream() 正在返回null。在尝试创建读取器以从中读取字节之前,您需要检查它是否返回了一些非空值。

    关于代理问题,您可以将Proxy 对象传递给连接,例如:

    Proxy proxy = new Proxy(Proxy.Type.HTTP, new InetSocketAddress("my.proxy.example.com", 3128));
    URLConnection yc = url.openConnection(proxy);
    

    这至少可以让您询问代理并排除问题的潜在来源(目前有几个)。

    This thread 可能有一些有用的提示可以让您的代理用户名和密码字符串正常工作。您链接的文章看起来有点过时了。

    【讨论】:

    • 用户名和密码呢?
    • @Gian,上面的代码会像 system.setProperty 这样在 jvm 范围内设置代理配置吗?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-06-22
    • 2012-04-20
    • 1970-01-01
    • 2018-07-28
    • 1970-01-01
    • 2014-10-29
    相关资源
    最近更新 更多