2016-03-08 3 views
0

при использовании WWW :: Механизировать и прокси-сервер все работает нормально. Однако при получении формы и отправке почтовых данных с помощью прокси он не будет работать (тайм-аут). Без прокси все работает отлично. я получил такой код:Perl WWW :: Механизировать с помощью прокси, не может отправить форму

$browser = WWW::Mechanize->new(autocheck => 1, timeout => 3);    
    $browser->proxy('http','http://127.0.0.1:8118');  
    $browser->proxy('https','https://127.0.0.1:8118');          
    $browser->get("http://someurl.com");   

    if ($browser->success()) { 

     $browser->form_name('form'); 

     $browser->field('a', 1); 
     $browser->field('b', 2); 

     $browser->field('c', 3); 

     # won't submit using proxy 
     $browser->submit(); 

    } 

ли кто-нибудь получил решение этой проблемы?

ответ

0

Учитывая отсутствие деталей для URL-адреса целевой формы, я угадаю, что это https, в то время как начало формы было простым http. Сначала имейте в виду, что, хотя LWP (библиотека, основанная на WWW :: Mechanize) поддерживает прокси-сервер для обработки пересылки https-подключений, он, вероятно, не поддерживает прокси-серверы, к которым непосредственно обращаются сами https. Но учитывая, что вы используете один и тот же IP-адрес: порт для HTTP и HTTPS прокси мое предположение, что вы просто сделали это опечатка и должно быть так:

$browser->proxy('http', 'http://127.0.0.1:8118');  
$browser->proxy('https','http://127.0.0.1:8118'); 

Кроме того, убедитесь, что версия LWP вы используете не менее 6,06, поскольку в ранних версиях были ошибки при правильной обработке соединений https, когда был настроен прокси-сервер.

+0

Это все http, также отправление и т. Д. Я также пробовал ваше решение, тот же результат :( Похоже, что скрипт просто не будет отправлять вообще при использовании прокси. – JOhnlw009a

+0

@ JOhnlw009a: сам сценарий не показывает очевидных проблем, кроме прокси-сервера https. К сожалению, информация, которую вы в настоящее время предоставляете, не позволяет воспроизвести проблему. Я бы рекомендовал вам предоставить минимальный пример, чтобы воспроизвести его. Поскольку вы утверждаете, что ничего не сделано с помощью https, вы также можете устранить настройку прокси-сервера https. –

+0

Я удалил его и отслеживал eveyrthing, все это действительно только HTTP. Я тестировал его на пару серверов, на которых установлен TOR/Privoxy. Брандмауэр тоже отключен. Проблема будет возникать для всех форм Я полагаю. – JOhnlw009a