Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

416
Vistas
request.post del script de python a mi sitio web de Django alojado con Apache dando 403 Prohibido

Mi sitio web de Django está alojado en el servidor Apache. Quiero enviar datos usando requestes.post a mi sitio web usando una secuencia de comandos de python en mi PC, pero está prohibido dar 403.

 import json url = "http://54.161.205.225/Project/devicecapture" headers = {'User-Agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/50.0.2661.102 Safari/537.36', 'content-type': 'application/json'} data = { "nb_imsi":"test API", "tmsi1":"test", "tmsi2":"test", "imsi":"test API", "country":"USA", "brand":"Vodafone", "operator":"test", "mcc":"aa", "mnc":"jhj", "lac":"hfhf", "cellIid":"test cell" } response = requests.post(url, data =json.dumps(data),headers=headers) print(response.status_code)

También he dado permiso al directorio que contiene vistas.py donde irá esta solicitud. He revisado muchas otras respuestas, pero no ayudaron. También probé el código sin json.dumps , pero tampoco funciona con eso. ¿Cómo resolver esto?

over 4 years ago · Santiago Trujillo
2 Respuestas
Responde la pregunta

0

Después de investigar, parece que la URL en la que debe publicar para iniciar sesión es: http://54.161.205.225/Project/accounts/login/?next=/Project/

Puede calcular lo que necesita enviar en una solicitud de publicación consultando la pestaña Red de Chrome DevTools. Esto nos dice que debe enviar los campos nombre de username , password y csrfmiddlewaretoken , que debe extraer de la página.

Puede obtenerlo extrayéndolo de la respuesta de la primera solicitud de obtención. Se almacena en la página de esta manera:

 <input type="hidden" name="csrfmiddlewaretoken" value="OspZfYQscPMHXZ3inZ5Yy5HUPt52LTiARwVuAxpD6r4xbgyVu4wYbfpgYMxDgHta">

Por lo tanto, deberá hacer algún tipo de Regex para obtenerlo. Lo resolverás.

ingrese la descripción de la imagen aquí

Así que primero tienes que crear una session . Luego cargue la página de inicio de sesión con una solicitud de obtención. Luego envíe una solicitud de publicación con sus credenciales de inicio de sesión a esa misma URL. Y luego su sesión obtendrá las cookies requeridas que luego le permitirán publicar en la URL deseada. Este es un ejemplo a continuación.

 import requests # Create session session = requests.session() # Add user-agent string session.headers.update({'User-Agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_9_3) ' + 'AppleWebKit/537.36 (KHTML, like Gecko) Chrome/35.0.1916.47 Safari/537.36'}) # Get login page response = session.get('http://54.161.205.225/Project/accounts/login/?next=/Project/') # Get csrf # Do something to response.text # Post to login response = session.post('http://54.161.205.225/Project/accounts/login/?next=/Project/', data={ 'username': 'example123', 'password': 'examplexamplexample', 'csrfmiddlewaretoken': 'something123123', }) # Post desired data response = session.post('http://url.url/other_page', data={ 'data': 'something', }) print(response.status_code)

Con suerte, esto debería llevarte allí. Buena suerte.

Para obtener más información, consulte esta pregunta sobre solicitudes: Solicitudes de Python y sesiones persistentes

over 4 years ago · Santiago Trujillo Denunciar

0

Me enfrenté a esa situación muchas veces Los problemas fueron:

  1. 54.161.205.225 no se agrega a los hosts permitidos en settings.py
  2. el apache wsgi no esta configurado correctamente

las cosas podrían ayudar con la depuración:

Verifique los registros de errores de apache para investigar qué salió mal
intente ejecutar el servidor localmente y publíquelo para asegurarse de que el problema no esté relacionado con apache

over 4 years ago · Santiago Trujillo Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda