Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Java [игнор отключен] [закрыт для гостей] / java.net.Proxy / 15 сообщений из 15, страница 1 из 1
02.03.2005, 20:50
    #32942397
-test
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
java.net.Proxy
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
03.03.2005, 08:52
    #32942741
mozheyko_d
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
java.net.Proxy
А Ваш прокси работает на 80-ом порту?
...
Рейтинг: 0 / 0
03.03.2005, 14:00
    #32943673
black zorro
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
java.net.Proxy
>>А Ваш прокси работает на 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
03.03.2005, 14:28
    #32943782
mozheyko_d
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
java.net.Proxy
Всё отлично работает, если изменить немножко:
Вот это
Код: 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
04.03.2005, 13:33
    #32946228
-test
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
java.net.Proxy
а где тут лажа??

набираю в 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
04.03.2005, 13:49
    #32946282
mozheyko_d
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
java.net.Proxy
-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
04.03.2005, 14:02
    #32946333
-test
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
java.net.Proxy
что значит нормально?
это всё плохо

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

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

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

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

мне нужно написать локальную проксю которая будет просто скидывать в логи все риквесты и респонсы
я её вроде написал
но не понимаю что не так
я же просто перенаправляю всё что получил
ничего не добавляю
ничего не убираю
если без прокси то всё нормально
если запускаю через неё -- то не пашет
...
Рейтинг: 0 / 0
06.04.2005, 18:30
    #33001350
black zorro
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
java.net.Proxy
так прикольно, сегодня смотрел 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
Форумы / Java [игнор отключен] [закрыт для гостей] / java.net.Proxy / 15 сообщений из 15, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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