Symfony и механизировать - PullRequest
       4

Symfony и механизировать

7 голосов
/ 22 ноября 2011

Я пытаюсь получить доступ к локальному веб-сайту, разработанному с использованием инфраструктуры Symfony.Он отлично работает с веб-браузером и с CURL, но когда я использую Mechanize, я всегда получал 401 несанкционированный ответ для сервера.

import mechanize


# Browser
br = mechanize.Browser()
br.set_debug_http(True)
br.set_debug_redirects(True)
br.set_debug_responses(True)

# Does not change anything even if we change thos
br.addheaders = [('User-agent', 'Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.0.1) Gecko/2008071615 Fedora/3.0.1-1.fc9 Firefox/3.0.1')]

# Here is my website
r = br.open('http://localhost:8080/frontend_dev.php/home')
html = r.read()

# Show the html source 
print html

У вас есть идея, почему она так себя ведет?

Спасибо

Ответы [ 5 ]

6 голосов
/ 28 ноября 2011

Я наконец-то нашел ответ сам. В sfDoctrineGuardPlugin (и sfGuardPlugin) есть ошибка, которая вызывает такое поведение, как указано здесь . Я применил патч, и проблема решена.

1 голос
/ 02 декабря 2011
1 голос
/ 25 ноября 2011

Можете ли вы указать действительный адрес, чтобы попробовать свой код? Я догадываюсь , что вы пропустили некоторые настройки, попробуйте отключить роботов.

br.set_handle_robots(False)
1 голос
/ 26 ноября 2011

Я ничего не знаю о платформе Symfony, но, как вы получаете 'Error : 401 '.Добавление этих строк может работать.

br.add_password('http://localhost:8080/frontend_dev.php/home', 'username', 'password')
br.open('http://localhost:8080/frontend_dev.php/home')
1 голос
/ 22 ноября 2011

существует строгий контроль над тем, кто может получить доступ к среде разработки в Symfony. Попробуйте использовать основной URL (вероятно, http://localhost:8080/index.php/home)

...