Estoy siguiendo una api y necesito usar un Base64 autenticación de mi Id de Usuario y contraseña.

‘ID de usuario y la Contraseña de la necesidad de ser concatenados y, a continuación, codificado en Base64’

a continuación, se muestra el ejemplo

'userid:password'

Se procede, entonces, a decir de » darle el valor codificado en un «Encabezado de Autorización»‘

‘por ejemplo: Authorization: BASIC {codificados en Base64 valor}

¿Cómo puedo escribir esto en un api de python solicitud?

z = requests.post(url, data=zdata )

Gracias

InformationsquelleAutor Marcus | 2013-08-09

3 Comentarios

  1. 37

    Puede codificar los datos y realizar la solicitud mediante el siguiente procedimiento:

    import requests, base64
    
    usrPass = "userid:password"
    b64Val = base64.b64encode(usrPass)
    r=requests.post(api_URL, 
                    headers={"Authorization": "Basic %s" % b64Val},
                    data=payload)

    No estoy seguro de si has de añadir el «BÁSICO» palabra en el campo de Autorización o no. Si usted proporciona la API de enlace, sería más claro.

    • por ejemplo, para cargar una imagen a Imgur, el encabezado de Autorización se parece a esto: "Client-ID yourClientPublicKey" con el «Cliente-ID» palabra clave antes de los datos.
    • ¿cuál es la carga útil aquí ?
    • cualquiera que sea el cuerpo de la solicitud autenticada desea enviar
  2. 57

    Las solicitudes de la biblioteca ha Basic Auth apoyo y se codifican automáticamente. Puede probar ejecutando el siguiente en python repl

    from requests.auth import HTTPBasicAuth
    r = requests.post(api_URL, auth=HTTPBasicAuth('user', 'pass'), data=payload)

    Puede confirmar esta codificación escribiendo el siguiente.

    r.request.headers['Authorization']

    salidas:

    u'Basic c2RhZG1pbmlzdHJhdG9yOiFTRG0wMDY4'
    • ¿cuál es la carga útil aquí ?
    • La carga útil puede ser cualquier cosa … como los datos de un formulario de envío, o de algunos datos en json, etc.
    • Yo sugeriría que esta respuesta sobre la aceptación de uno. Es python-version independiente.
  3. 2

    Con python3 he encontrado la solución, que es trabajo para mí:

    userpass = username + ":" + password
    endcoded_u = base64.b64encode(userpass.encode()).decode()
    headers = {"Authorization" : "Basic %s" % encoded_u} 

Dejar respuesta

Please enter your comment!
Please enter your name here