Я только начал работать в сетевых протоколах Java. Я пытаюсь подключиться к Интернету с помощью моего прокси-сервера. Когда я вижу сообщение в https://www.tutorialspoint.com/javaexamples/net_poxy.htm, они устанавливают для свойства http.proxyHost значение "proxy.mycompany1.local". Я знаю, что могу установить это на свой IP-адрес прокси-сервера, но мне любопытно узнать, почему моя программа все еще работает, хотя я установил ее в некоторую случайную строку, такую как "abcd".
а. Что означает "proxy.mycompany1.local"?
В. Как работает моя программа, хотя я установил http.proxyHost "в" abcd "?
Ниже приводится моя рабочая программа:
import java.net.HttpURLConnection;
import java.net.InetSocketAddress;
import java.net.Proxy;
import java.net.ProxySelector;
import java.net.URI;
import java.net.URL;
public class TestProxy {
public static void main(String s[]) throws Exception {
try {
System.setProperty("http.proxyHost", "abcd");
System.setProperty("http.proxyPort", "8080");
URL u = new URL("http://www.google.com");
HttpURLConnection con = (HttpURLConnection) u.openConnection();
System.out.println(con.getResponseCode() + " : " + con.getResponseMessage());
} catch (Exception e) {
e.printStackTrace();
System.out.println(false);
}
Proxy proxy = (Proxy) ProxySelector.getDefault().select(new URI("http://www.google.com")).iterator().next();
System.out.println("proxy Type : " + proxy.type());
InetSocketAddress addr = (InetSocketAddress) proxy.address();
if (addr == null) {
System.out.println("No Proxy");
} else {
System.out.println("proxy hostname : " + addr.getHostName());
System.out.println("proxy port : " + addr.getPort());
}
}
}
Это вывод:
200 : OK
proxy Type : HTTP
proxy hostname : abcd
proxy port : 8080