На главную Наши проекты:
Журнал   ·   Discuz!ML   ·   Wiki   ·   DRKB   ·   Помощь проекту
ПРАВИЛА FAQ Помощь Участники Календарь Избранное RSS
msm.ru
! Следующие правила действуют в данном разделе в дополнение к общим Правилам Форума
1. Здесь обсуждается Java, а не JavaScript! Огромная просьба, по вопросам, связанным с JavaScript, SSI и им подобным обращаться в раздел WWW Masters или, на крайний случай, в Многошум.
2. В случае, если у вас возникают сомнения, в каком разделе следует задать свой вопрос, помещайте его в корневую ветку форума Java. В случае необходимости, он будет перемещен модераторами (с сохранением ссылки в корневом разделе).

3. Запрещается создавать темы с просьбой выполнить какую-то работу за автора темы. Форум является средством общения и общего поиска решения. Вашу работу за Вас никто выполнять не будет.
4. Не рекомендуется создавать несколько несвязанных вопросов в одной теме. Пожалуйста, создавайте по одной теме на вопрос.
Модераторы: dark_barker, wind
  
> Определение прокси
    Добрый день уважаемые! Подскажите как можно реализовать определение прокси-сервера? Т.е идет обращение к ресурсу и если ПК использует выход через прокси, то показать окно для заполнения. Как вариант можно использовать коды ошибок и если возвращается ошибка 407 то значить используется прокси. Но думаю это коряво и неправильно. Есть какие то методы стандартные в Яве?

    Добавлено
    Что-то ничего не пойму я.
    Пробую
    ExpandedWrap disabled
        int c;
              URL hp = new URL("http://forum.sources.ru");
              HttpURLConnection hpCon = (HttpURLConnection)hp.openConnection();
              
              System.out.println("Метод: " + hpCon.getRequestMethod());
              System.out.println("Код ответа: " + hpCon.getResponseCode());
              System.out.println("Сообщение ответа: " + hpCon.getResponseMessage());
              
              long len = hpCon.getContentLengthLong();
              if(len != -1)
              {
                   InputStream input = hpCon.getInputStream();
                   while((c=input.read()) != -1)
                   {
                     System.out.print((char)c);  
                   }
                   input.close();
                  
              }

    Получаю
    ExpandedWrap disabled
       
      Метод: GET
      Код ответа: 200
      Сообщение ответа: OK
      <html><body><h1>It works!</h1>
      <p>This is the default web page for this server.</p>
      <p>The web server software is running but no content has been added, yet.</p>
      </body></html>

    Т.е проходит. Как так?
    У меня ПК за прокси. Браузер по крайней мере требует данные прокси. Почему тогда проходит вызов из ИДЕ?
    Сообщение отредактировано: Kamenev_D -
      потому что java по умолчанию использует "системные" настройки прокси

      Добавлено
      http://stackoverflow.com/questions/4933677...ting-using-java
        Емнип, есть какой-то system property который за это отвечает, типа "использовать системный прокси".
          Цитата dark_barker @
          Емнип, есть какой-то system property который за это отвечает, типа "использовать системный прокси".


          Наверное это он
          ExpandedWrap disabled
             System.setProperty("java.net.useSystemProxies","true");

          Но вопрос в другом.Почему не требует имя пользователя и пароль?
          Сообщение отредактировано: Kamenev_D -
            А вот пример без использования System.setProperty("java.net.useSystemProxies","true");
            ExpandedWrap disabled
              //From project ant, under directory /src/main/org/apache/tools/ant/util/java15/, in source file ProxyDiagnostics.java
              **
               * Get the diagnostics for proxy information.
               * @return the information.
               */
              public String toString(){
                ProxySelector selector=ProxySelector.getDefault();
                List list=selector.select(destURI);
                StringBuffer result=new StringBuffer();
                Iterator proxies=list.listIterator();
                while (proxies.hasNext()) {
                  Proxy proxy=(Proxy)proxies.next();
                  SocketAddress address=proxy.address();
                  if (address == null) {
                    result.append("Direct connection\n");
                  }
               else {
                    result.append(proxy.toString());
                    if (address instanceof InetSocketAddress) {
                      InetSocketAddress ina=(InetSocketAddress)address;
                      result.append(' ');
                      result.append(ina.getHostName());
                      result.append(':');
                      result.append(ina.getPort());
                      if (ina.isUnresolved()) {
                        result.append(" [unresolved]");
                      }
               else {
                        InetAddress addr=ina.getAddress();
                        result.append(" [");
                        result.append(addr.getHostAddress());
                        result.append(']');
                      }
                    }
                    result.append('\n');
                  }
                }
                return result.toString();
              }
            0 пользователей читают эту тему (0 гостей и 0 скрытых пользователей)
            0 пользователей:


            Рейтинг@Mail.ru
            [ Script execution time: 0,0242 ]   [ 15 queries used ]   [ Generated: 29.03.24, 14:44 GMT ]