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.
¡No te pierdas nuestro curso oficial en Udemy para aprender Python, bases de datos SQL, orientación a objetos, tkinter y mucho más!

También ofrecemos consultoría profesional de desarrollo en Python para personas y empresas.
Responder
#3
Código:
# sudo apt-get install python-pycurl

import pycurl

import urllib

import cStringIO

response = cStringIO.StringIO()

url = '"DIRECCIÓN WEB'



post_vars = { 'Content-Type':'application/json',
                        'Basic': 'Y2FybG9zX2d1dGllcnJlekBjYXRjb29wLm9yZy5teDoxMjM0',
                        'Accept:application/json',
                       'pass': 'El_password',
                       'form_id': 'carr'}

c = pycurl.Curl()

c.setopt(pycurl.URL, url)

c.setopt(pycurl.POSTFIELDS, urllib.urlencode(post_vars))

c.setopt(c.WRITEFUNCTION, response.write)

c.perform()

c.close()

#print

variable = response.getvalue()

print variable

#El password es el que da lata
# pass = .+yx8GzT:$n~C"5FD'H"EwH9qJ-=:;e+:W
# Le puse la s diagonales al password que sugiere la documentación de curl
# 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í:

Código:
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:

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

De modo que:

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

Un saludo.
¡No te pierdas nuestro curso oficial en Udemy para aprender Python, bases de datos SQL, orientación a objetos, tkinter y mucho más!

También ofrecemos consultoría profesional de desarrollo en Python para personas y empresas.
Responder
#5
Gracias voy a intentarlo.
Responder


Salto de foro:


Usuarios navegando en este tema: 1 invitado(s)