Как мне заставить HttpURLConnection использовать прокси?

print и echo более или менее одинаковы; они являются языковыми конструкциями, отображающими строки. Различия тонкие: print имеет возвращаемое значение 1, поэтому его можно использовать в выражениях, тогда как echo имеет тип возврата void; echo может принимать несколько параметров, хотя такое использование редко; echo немного быстрее, чем print . (Лично я всегда использую echo, никогда print.)

var_dump печатает подробный дамп переменной, включая ее тип и тип любых подпозиций (если это массив или объект). print_r печатает переменную в более понятной для человека форме: строки не цитируются, информация о типе опущена, размеры массива не заданы и т. д.

var_dump обычно более полезен, чем print_r при отладке, по моему опыту. Это особенно полезно, когда вы точно не знаете, какие значения / типы у вас есть в переменных. Рассмотрим эту тестовую программу:

$values = array(0, 0.0, false, '');

var_dump($values);
print_r ($values);

С помощью print_r вы не можете определить разницу между 0 и 0.0 или false и '':

array(4) {
  [0]=>
  int(0)
  [1]=>
  float(0)
  [2]=>
  bool(false)
  [3]=>
  string(0) ""
}

Array
(
    [0] => 0
    [1] => 0
    [2] => 
    [3] => 
)

123
задан izb 16 September 2009 в 13:28
поделиться

4 ответа

Since java 1.5 you can also pass a java.net.Proxy instance to the openConnection(proxy) method:

//Proxy instance, proxy ip = 10.0.0.1 with port 8080
Proxy proxy = new Proxy(Proxy.Type.HTTP, new InetSocketAddress("10.0.0.1", 8080));
conn = new URL(urlString).openConnection(proxy);

If your proxy requires authentication it will give you response 407.

In this case you'll need the following code:

    Authenticator authenticator = new Authenticator() {

        public PasswordAuthentication getPasswordAuthentication() {
            return (new PasswordAuthentication("user",
                    "password".toCharArray()));
        }
    };
    Authenticator.setDefault(authenticator);
322
ответ дан 24 November 2019 в 00:34
поделиться

На этот вопрос довольно легко ответить из Интернета. Задайте системные свойства http.proxyHost и http.proxyPort . Вы можете сделать это с помощью System.setProperty () или из командной строки с синтаксисом -D .

33
ответ дан 24 November 2019 в 00:34
поделиться

Прокси-серверы поддерживаются двумя системными свойствами: http.proxyHost и http.proxyPort. Они должны быть установлены на прокси-сервер и порт соответственно. Следующий базовый пример иллюстрирует это:

String url = "http://www.google.com/",
       proxy = "proxy.mydomain.com",
       port = "8080";
URL server = new URL(url);
Properties systemProperties = System.getProperties();
systemProperties.setProperty("http.proxyHost",proxy);
systemProperties.setProperty("http.proxyPort",port);
HttpURLConnection connection = (HttpURLConnection)server.openConnection();
connection.connect();
InputStream in = connection.getInputStream();
readResponse(in);
19
ответ дан 24 November 2019 в 00:34
поделиться

Установите следующее перед открытиемConnection,

System.setProperty("http.proxyHost", "host");
System.setProperty("http.proxyPort", "port_number");

Если прокси-сервер требует аутентификации,

System.setProperty("http.proxyUser", "user");
System.setProperty("http.proxyPassword", "password");
10
ответ дан 24 November 2019 в 00:34
поделиться
Другие вопросы по тегам:

Похожие вопросы: