代理使用Java URLConnection类

Gov*_*iya 5 java proxy urlconnection

我是Java的新手.我正在使用以下代码来调用REST API,它在简单的环境中工作正常,但是当我使用代理环境时它抛出了NullPointerException.我在google上找到了我们必须为其设置代理设置的结果.我根据http://www.javaworld.com/javaworld/javatips/jw-javatip42.html文章设置代理,但这不起作用+ base64Encode(密码)创建语法错误.

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();
Run Code Online (Sandbox Code Playgroud)

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

Gia*_*ian 18

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

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

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

这可能至少允许您查询代理并排除问题的潜在来源(目前有几个).

此线程可能有一些有用的提示,以使您的代理用户名和密码字符串正常工作.您链接的文章看起来有点过时了.