powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Java [игнор отключен] [закрыт для гостей] / java.net.Proxy
15 сообщений из 15, страница 1 из 1
java.net.Proxy
    #32942397
-test
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
URL url = new URL("http://www.ru");
SocketAddress address = new InetSocketAddress(InetAddress.getByName(PROXY_NAME), 80);
Proxy proxy = new Proxy(Proxy.Type.HTTP, address);
URLConnection c = url.openConnection(proxy);
InputStream is = c.getInputStream();


выдаёт Server returned HTTP response code: 400 for URL: http://www.ru на последней строчке

:((
что не так?
...
Рейтинг: 0 / 0
java.net.Proxy
    #32942741
mozheyko_d
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А Ваш прокси работает на 80-ом порту?
...
Рейтинг: 0 / 0
java.net.Proxy
    #32943673
black zorro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
>>А Ваш прокси работает на 80-ом порту?
работал бы не на этом порту было бы connection refused а тут получается ответ
с 400 кодом ошибки, вот пример кода который использовал я и он работает, факт:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
 public   class  ProxyClient {
   private   static   final  String proxyhost = "office";
    // здесь я задаю имя комьютера на котором запущен проски-сервер
   private   static   final   int  proxyport =  8080 ;
    // номер порта на котором работает служба прокси

   public   static   void  main(String s[])
  {
    ProxyClient pl =  new  ProxyClient();
    String page = pl.getPage("www.microsith.com" , "why-upgrade.php3", "vasyan", "big_secret");
      // получаем документ и распечатываем его
    System.out.println(page);
  }

   public  String getPage(String url_server, String url_document, String uName ,  String uPass)
  {
    StringBuffer buf =  new  StringBuffer();
     try 
    {
      Socket s =  new  Socket(proxyhost, proxyport);
        // устанавливаем сокетное соединение
      String password =  uName+ ":" + uPass;
        // формируем и кодируем строку авторизации на прокси сервере
      String encodedPassword =  new  String ( new  sun.misc.BASE64Encoder().encodeBuffer(password.getBytes() ));
      BufferedReader in =  new  BufferedReader
          ( new  InputStreamReader(s.getInputStream(), "Cp1251"));
      PrintWriter out =  new  PrintWriter
          ( new  OutputStreamWriter(s.getOutputStream(), "Cp1251"));

      out.print("GET " + url_server+"/" + url_document + " HTTP/1.1\r\n" +
                "Host: " + url_server + "\r\n" +
                "Accept: */*\r\n" +
                "Connection: close\r\n" +
                "Proxy-Authorization: Basic " + encodedPassword + "\r\n" +
                "\r\n");
      out.flush();

       for (String line = in.readLine(); line !=  null ; line = in.readLine())
        buf.append(line).append("\r\n");

      s.close();
    }
     catch  (IOException e) { e.printStackTrace(); }
     return  buf.toString();
  }
}

...
Рейтинг: 0 / 0
java.net.Proxy
    #32943782
mozheyko_d
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Всё отлично работает, если изменить немножко:
Вот это
Код: plaintext
1.
String page = pl.getPage("www.microsith.com" , "why-upgrade.php3", "vasyan", "big_secret");
на
Код: plaintext
1.
String page = pl.getPage("http://www.microsith.com" , "why-upgrade.php3", "vasyan", "big_secret");
Проверил на проксях с авторизацией и без. squid/2.5.STABLE5-20040405
...
Рейтинг: 0 / 0
java.net.Proxy
    #32946228
-test
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
а где тут лажа??

набираю в IE www.ru

получаю один риквест

GET http://www.ru/ HTTP/1.0
Accept: image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, application/x-shockwave-flash, application/vnd.ms-excel, application/vnd.ms-powerpoint, application/msword, */*
Accept-Language: ru
User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1)
Host: www.ru
Proxy-Connection: Keep-Alive


и один риспонс

HTTP/1.1 407 Proxy Access Denied
Server: Microsoft-IIS/4.0
Date: Fri, 04 Mar 2005 10:17:15 GMT
Proxy-Authenticate: NTLM


вот собственно прокся


Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
 public   class  T
{
     private   static   final  String LOG_FOLDER = "e:/logs/";
    
     static   class  S  extends  Thread
    {
         private  InputStream in;
         private  OutputStream out;
        
         private  String prefix;
         private   int  index;

         public   void  run()
        {
             try  {
                 while  (true) {
                    FileOutputStream fos =  new  FileOutputStream(LOG_FOLDER + prefix + index + ".txt");
                     int  b = - 1 ;
                     int  count =  0 ;
                     while  ((b = in.read()) != - 1 ) {
                        out.write(b);
                        fos.write(b);
                        count++;
                    }
                     if  (count ==  0 ) {
                         continue ;
                    }
                    fos.flush();
                    fos.close();
                    index++;
                }
            }  catch  (Exception e) {
                e.printStackTrace();
            }
        }
    }

     public   static   void  main(String[] args)  throws  Exception
    {
        S a =  new  S();
        S b =  new  S();
        
        a.prefix = "REQUEST";
        a.index =  0 ;
        b.prefix = "RESPONSE";
        b.index =  0 ;
        
        ServerSocket serverSocket =  new  ServerSocket( 7777 );
        Socket thisProxy = serverSocket.accept();
        
        Socket proxyR =  new  Socket(InetAddress.getByName("MY_PROXY"),  80 );
        
        a.in = thisProxy.getInputStream();
        a.out = proxyR.getOutputStream();
        
        b.in = proxyR.getInputStream();
        b.out = thisProxy.getOutputStream();
        
        a.start();
        b.start();
    }
}
...
Рейтинг: 0 / 0
java.net.Proxy
    #32946282
mozheyko_d
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
-testHTTP/1.1 407 Proxy Access Denied
Server: Microsoft-IIS/4.0
Date: Fri, 04 Mar 2005 10:17:15 GMT
Proxy-Authenticate: NTLM

Это нормально?
...
Рейтинг: 0 / 0
java.net.Proxy
    #32946333
-test
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
что значит нормально?
это всё плохо

т.е. я хотел написать локальный прокси сервер
который будет следить за всеми риквестами\риспонсами и писать их в файлики на диск
я так понял нужно просто читать из одного сокета и писать в другой
но чтото не так вышло
...
Рейтинг: 0 / 0
java.net.Proxy
    #32946374
mozheyko_d
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
-testчто значит нормально?
это всё плохо

т.е. я хотел написать локальный прокси сервер
который будет следить за всеми риквестами\риспонсами и писать их в файлики на диск
я так понял нужно просто читать из одного сокета и писать в другой
но чтото не так вышло
Т.е. с локальным прокси-сервером T получает "Доступ запрещён", а напрямую всё нормально?
...
Рейтинг: 0 / 0
java.net.Proxy
    #32946410
-test
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
да
эсли ИЕ настроен на внешнию проксю -- всё пучком
запускаю лольную, перенастраиваю ИЕ -- такая лажа
...
Рейтинг: 0 / 0
java.net.Proxy
    #32946430
mozheyko_d
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
-testда
эсли ИЕ настроен на внешнию проксю -- всё пучком
запускаю лольную, перенастраиваю ИЕ -- такая лажа
Неплохо бы узнать на проксе, а почему это доступ запрещён.
...
Рейтинг: 0 / 0
java.net.Proxy
    #32946446
-test
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
каким образом??

и вообще не понятно в чём дело
я же просто передаю тоже самое что и получаю
просто прослойка
никаких изменений
при отключенной прокси всё работает
...
Рейтинг: 0 / 0
java.net.Proxy
    #32946449
mozheyko_d
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
-testкаким образом??
Логи почитать, выяснить какой ACL сработал.
Может это приблизит отгадку?
...
Рейтинг: 0 / 0
java.net.Proxy
    #32946875
black zorro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вы хотите написать собственный прокс - в добрый путь.
если же нужно просто выйти из сети через прокс с авторизацией из жабы, то обратите внимание что у вас NTLM аутентификация и одним запросом из IE дело не ограничивается, к томуже в примере что привел я используется basic аутентфиикация, не факт что ваш прокс в случае если не поддерживается NTLM переходит на basic.
...
Рейтинг: 0 / 0
java.net.Proxy
    #32946962
-test
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
2black zorro

объясни плз поподробнее
или кинь ссылку где можно почитать

мне нужно написать локальную проксю которая будет просто скидывать в логи все риквесты и респонсы
я её вроде написал
но не понимаю что не так
я же просто перенаправляю всё что получил
ничего не добавляю
ничего не убираю
если без прокси то всё нормально
если запускаю через неё -- то не пашет
...
Рейтинг: 0 / 0
java.net.Proxy
    #33001350
black zorro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
так прикольно, сегодня смотрел httpUnit оказывается эта штука умеет не хило разбирать документы html и работает через прокс,правда опять через basic.
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
 public   void  testProxyAndJs()  throws  Exception {
        HttpUnitOptions.setDefaultCharacterSet("cp1251");
        HttpUnitOptions.setScriptingEnabled(false);
        HttpUnitOptions.setCheckContentLength(false);
        ClientProperties.getDefaultProperties().setAcceptGzip(false);


         WebConversation wc =  new  WebConversation();
         wc.setProxyServer( "office",  8080  );
         wc.setAuthorization("vasyan", "123");
         WebResponse resp = wc.getResponse( "http://mail.tut.by" );
         System.out.println(resp.getTitle());
  }
...
Рейтинг: 0 / 0
15 сообщений из 15, страница 1 из 1
Форумы / Java [игнор отключен] [закрыт для гостей] / java.net.Proxy
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]