2011-11-22 23 views
7

Estoy intentando acceder a un sitio web local diseñado con el framework Symfony. Funciona perfectamente con el navegador web y con CURL, pero cuando uso Mechanize siempre obtengo la respuesta 401 no autorizada para el servidor.Symfony y mecanizar

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 

¿Tiene alguna idea de por qué se comporta así?

Gracias

+0

¿Symfony está golpeado o no? Lo que sucede es que escribes morir ("golpear"); en la parte superior del archivo frontend_dev.php? – greg0ire

+0

Si muero ("golpear"); Veo el golpe y no hay error 401. – lc2817

Respuesta

6

Finalmente encontré la respuesta por mi cuenta. Hay un error en el sfDoctrineGuardPlugin (y sfGuardPlugin) que causa este comportamiento como se indica here. Apliqué el parche y el problema está resuelto.

+0

Es un error antiguo, creo que debe tener una versión anterior del complemento. Considera actualizar – greg0ire

+0

El error ha sido corregido en agosto de este año. Y el último lanzamiento de sfDoctrineGuard se ha realizado en 2010. No creo que tenga razón. ¿Qué sugieres? Http://www.symfony-project.org/plugins/sfDoctrineGuardPlugin – lc2817

+0

Sugiero usar Symfony2 En serio, no sé por qué el último lanzamiento es tan viejo ... quizás jwage está demasiado ocupado con doctrine2/sf2 ... – greg0ire

1

existen controles estrictos sobre quién puede acceder al entorno de desarrollo de Symfony. Intente utilizar la URL principal (probablemente http://localhost:8080/index.php/home)

+0

No resolvió el problema. Lo intenté y obtuve el mismo error – lc2817

+0

Lo siento. Supongo que borraste tu caché? ¿Tiene alguna credencial o algo requerido? – MrGlass

+0

Para el caché: sí. No tengo ninguna credencial necesaria para la página de inicio, para algunas páginas después sí. Y funciona perfectamente con curl, no sé por qué ... – lc2817

1

¿Puede usted remitir una dirección válida para probar su código? I adivina que te perdiste algunas configuraciones, intenta deshabilitar los robots.

br.set_handle_robots(False) 
+0

Intenté esto y no cambió nada. No, no puedo proporcionar una dirección válida para probar mi código, no, no (lo siento más adelante). – lc2817

1

No sé nada acerca de Symfony, pero a medida que está recibiendo 'Error : 401 '. Agregar estas líneas podría funcionar.

br.add_password('http://localhost:8080/frontend_dev.php/home', 'username', 'password') 
br.open('http://localhost:8080/frontend_dev.php/home') 
+0

Intenté esto y sigo teniendo el mismo error – lc2817