如何在java中为给定的ip地址添加没有代理服务器,如在mozilla中

Mor*_*anM 8 java

我正在通过url在java中读取xml,这是我的代码:

String web="example.com";
URL url = new URL(web);
URLConnection conn = url.openConnection();

conn.setDoOutput(true);
OutputStreamWriter writer = new OutputStreamWriter(conn.getOutputStream());

writer.write(ufx);
writer.flush();

BufferedReader reader = new BufferedReader(new InputStreamReader(conn.getInputStream()));
String line;
while ((line = reader.readLine()) != null) {
   answer.append(line);
}
writer.close();
reader.close();

} catch (Exception e) {
   e.printStackTrace();
}

return answer.toString();
Run Code Online (Sandbox Code Playgroud)

我的问题是我使用的网址被阻止了,我想通过输入流从网上读取数据.在mozilla中删除无代理后,web在mozilla中成功打开.我如何在java中实现这一点?

icz*_*cza 11

有一些系统属性指定了java使用的代理配置.您可以将它们作为命令行参数传递,或者在应用程序中首先设置它们:

java -Dhttp.proxyHost=1.1.1.1 -Dhttp.proxyPort=1234 -jar somejar.jar
Run Code Online (Sandbox Code Playgroud)

请注意,还有更多,您还可以为http,https等不同协议设置不同的代理设置,还可以指定例外.

要定义异常(不使用代理),可以使用http.nonProxyHosts系统属性,例如:

java -Dhttp.proxyHost=webcache.example.com -Dhttp.proxyPort=8080
    -Dhttp.nonProxyHosts="localhost|host.example.com" 
Run Code Online (Sandbox Code Playgroud)

查看有关官方Oracle文档的更多信息.


nab*_*lex 4

由于您没有使用编程代理,因此它使用系统属性:

  • http.proxyHost
  • http.proxyPort
  • http.nonProxyHosts

您可以不设置它们或更新最后一个。

更新

重读您的问题后,我实际上不确定您是使用代理还是不想使用代理。你能具体说明吗?无论哪种方式,属性都可以帮助您,或者您可以查看 URL.openConnection(Proxy)