es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Cómo enviar una solicitud POST en Python para este comando curl.

Cómo enviar una solicitud POST en Python equivalente a este comando curl:


curl -u "TU_NOMBRE_DE_USUARIO:TU_CLAVE_DE_ACCESO" \
-X POST "https://api-cloud.browserstack.com/app-automate/upload" \
-F "url=https://www.browserstack.com/app-automate/sample-apps/android/WikipediaSample.apk"

He intentado el siguiente código:


resp=requests.post(URL,headers=
{'TU_NOMBRE_DE_USUARIO:TU_CLAVE_DE_ACCESO'},
data=https://www.browserstack.com/app-automate/sample-apps/android/WikipediaSample.apk")

y no funciona.

No sé cómo enviar esta línea "url=https://www.browserstack.com/app-automate/sample-apps/android/WikipediaSample.apk" en una solicitud POST.
“url=https://www.browserstack.com/app-automate/sample-apps/android/WikipediaSample.apk” es la URL pública del archivo apk.
Y quiero cargarlo en esta URL “https://api-cloud.browserstack.com/app-automate/upload”

Y después de aplicar la respuesta de abajo, encontré la solución
Gracias a todos.
La respuesta es –

import urllib.request

El archivo se descargará en el directorio de trabajo actual con el nombre app-release.apk

urllib.request.urlretrieve(‘https://www.browserstack.com/app-automate/sample-apps/android/WikipediaSample.apk’, ‘app-release.apk’)

test_file = open(“app-release.apk”, “rb”)

URL = ‘https://api-cloud.browserstack.com/app-automate/upload’
response = requests.post(URL, files={‘file’: test_file, }, auth=(‘TU_NOMBRE_DE_USUARIO’, ‘TU_CLAVE_DE_ACCESO’))

Tags:  , ,

Answer

  1. Avatar for davy.ai

    Para enviar una solicitud POST en Python que sea equivalente al comando curl proporcionado, puedes usar la biblioteca requests. Aquí te muestro cómo puedes hacerlo:

    import requests
    
    # Define la URL del punto final de la API
    url = "https://api-cloud.browserstack.com/app-automate/upload"
    
    # Define las credenciales de autenticación
    auth_credentials = ("TU_NOMBRE_DE_USUARIO", "TU_CLAVE_DE_ACCESO")
    
    # Define el archivo para cargar
    file_url = "https://www.browserstack.com/app-automate/sample-apps/android/WikipediaSample.apk"
    file_content = requests.get(file_url).content
    
    # Define el cuerpo de la solicitud POST
    body = {"file": ("WikipediaSample.apk", file_content)}
    
    # Envía la solicitud POST con los encabezados, credenciales de autenticación y cuerpo especificados
    response = requests.post(url, headers={}, auth=auth_credentials, files=body)
    
    # Imprime el código de estado y el contenido de la respuesta
    print(f"Código de estado de respuesta: {response.status_code}")
    print(f"Contenido de respuesta: {response.content}")
    

    En este código, primero definimos la URL del punto final de la API a la que queremos enviar la solicitud POST. Luego, definimos las credenciales de autenticación usando una tupla con el formato (nombre_de_usuario, contraseña). A continuación, definimos el archivo que queremos cargar proporcionando su URL y obteniendo su contenido mediante la función requests.get().

    Luego, construimos el cuerpo de la solicitud POST como un diccionario donde la clave "file" corresponde al archivo que se va a cargar y tiene un valor de tupla donde el primer elemento es el nombre del archivo y el segundo elemento es su contenido.

    Finalmente, enviamos la solicitud POST utilizando la función requests.post() y pasando la URL, los encabezados (en este caso, un diccionario vacío), las credenciales de autenticación y el cuerpo. Luego, imprimimos el código de estado y el contenido de la respuesta para verificar que la solicitud se haya realizado correctamente.

Comments are closed.