Calificación:
  • 0 voto(s) - 0 Media
  • 1
  • 2
  • 3
  • 4
  • 5
curl
#1
Estoy tratando de hacer un acceso con curl en Python pero la calve del usuario es complicada

usuario     carr

clave         .+yx8GzT:$n~C"5FD'H"EwH9qJ-=:;e+:W

el manual de curl indica poner \ antes de las " pero aún así maraca error de autentificación, si lo haga
por medio del ClientRes de web de pruebas lo hace bien

El comando al final a ejecutar es

curl -H "Basic:Y2FybG9zX2d1dGllcnJlekBjYXRjb29wLm9yZy5teDoxMjM0" -H "Accept:application/json" -u "carr":" .+yx8GzT:$n~C\"5FD'H\"EwH9qJ-=:;e+:W" -X GET <Direcion URL>

Alguna sugerencia ???
Responder
#2
Hola. ¿Cuál sería la relación con Python? ¿Estás intentando invocar curl desde Python? ¿Cómo lo estás haciendo? ¿Podrías mostrar la parte relevante de tu código?

Saludos.
Responder
#3
  1. # sudo apt-get install python-pycurl
  2.  
  3. import pycurl
  4.  
  5. import urllib
  6.  
  7. import cStringIO
  8.  
  9. response = cStringIO.StringIO()
  10.  
  11. url = '"DIRECCIÓN WEB'
  12.  
  13.  
  14.  
  15. post_vars = { 'Content-Type':'application/json',
  16. 'Basic': 'Y2FybG9zX2d1dGllcnJlekBjYXRjb29wLm9yZy5teDoxMjM0',
  17. 'Accept:application/json',
  18. 'pass': 'El_password',
  19. 'form_id': 'carr'}
  20.  
  21. c = pycurl.Curl()
  22.  
  23. c.setopt(pycurl.URL, url)
  24.  
  25. c.setopt(pycurl.POSTFIELDS, urllib.urlencode(post_vars))
  26.  
  27. c.setopt(c.WRITEFUNCTION, response.write)
  28.  
  29. c.perform()
  30.  
  31. c.close()
  32.  
  33. #print
  34.  
  35. variable = response.getvalue()
  36.  
  37. print variable
  38.  
  39. #El password es el que da lata
  40. # pass = .+yx8GzT:$n~C"5FD'H"EwH9qJ-=:;e+:W
  41. # Le puse la s diagonales al password que sugiere la documentación de curl
  42. # Finalmente es como ejecutar el siguiente comando en la terminal de Linux


url -H "Basic:Y2FybG9zX2d1dGllcnJlekBjYXRjb29wLm9yZy5teDoxMjM0" -H "Accept:application/json" -u "carr":" .+yx8GzT:$n~C\"5FD'H\"EwH9qJ-=:;e+:W" -X GET <Direcion URL>


Gracias por responder.
Responder
#4
En Python también podés usar una barra invertida para incluir comillas dentro de una cadena. En tu caso sería así:

  1. password = ".+yx8GzT:$n~C\"5FD'H\"EwH9qJ-=:;e+:W"


De todas formas creo que es más legible usando tres comillas, eliminando la necesidad de usar barras invertidas:

  1. password = """.+yx8GzT:$n~C"5FD'H"EwH9qJ-=:;e+:W"""


De modo que:

  1. post_vars = {
  2. 'Content-Type':'application/json',
  3. 'Basic': 'Y2FybG9zX2d1dGllcnJlekBjYXRjb29wLm9yZy5teDoxMjM0',
  4. 'Accept': 'application/json',
  5. 'pass': """.+yx8GzT:$n~C"5FD'H"EwH9qJ-=:;e+:W""",
  6. 'form_id': 'carr'
  7. }


Un saludo.
Responder
#5
Gracias voy a intentarlo.
Responder


Salto de foro:


Usuarios navegando en este tema: 1 invitado(s)