Acceso a Servicios Web con pycurl en Python

Acceso a Servicios Web con pycurl en Python

En este tutorial, aprenderemos a acceder a servicios web con pycurl en Python. pycurl es una biblioteca de Python que proporciona una interfaz de alto nivel para realizar solicitudes HTTP.

Instalación

Para instalar pycurl, podemos usar el administrador de paquetes de nuestra distribución. En Ubuntu, podemos usar el siguiente comando:

sudo apt install python3-pycurl

Ejemplo básico

En este ejemplo, haremos una solicitud HTTP GET a la página de inicio de Google:

Python
import pycurl

def main():
    # Crear una instancia de pycurl
    curl = pycurl.Curl()

    # Establecer la URL
    curl.setopt(pycurl.URL, 'https://www.google.com')

    # Realizar la solicitud
    curl.perform()

    # Obtener el código de estado
    code = curl.getinfo(pycurl.HTTP_CODE)

    # Imprimir el código de estado
    print(code)

if __name__ == '__main__':
    main()

Este código imprimirá el código de estado de la respuesta HTTP. En este caso, el código de estado debería ser 200, que indica que la solicitud se realizó correctamente.

Solicitudes POST

Para realizar una solicitud POST, podemos usar el método setopt() para establecer el método HTTP a POST. También debemos especificar los datos que se enviarán en la solicitud.

En este ejemplo, haremos una solicitud POST a un servidor que acepta datos JSON. Los datos que enviaremos serán un nombre y una edad:

Python
import pycurl
import json

def main():
    # Crear una instancia de pycurl
    curl = pycurl.Curl()

    # Establecer la URL
    curl.setopt(pycurl.URL, 'https://example.com/api/users')

    # Establecer el método HTTP
    curl.setopt(pycurl.HTTP_POST, 1)

    # Establecer los datos de la solicitud
    data = json.dumps({'name': 'John Doe', 'age': 30})
    curl.setopt(pycurl.POSTFIELDS, data)

    # Realizar la solicitud
    curl.perform()

    # Obtener el código de estado
    code = curl.getinfo(pycurl.HTTP_CODE)

    # Imprimir el código de estado
    print(code)

if __name__ == '__main__':
    main()

Este código imprimirá el código de estado de la respuesta HTTP. En este caso, el código de estado debería ser 201, que indica que la solicitud se realizó correctamente y se creó un nuevo recurso.

Solicitudes con parámetros

Para realizar una solicitud con parámetros, podemos usar el método setopt() para establecer los parámetros. Los parámetros se especifican como un diccionario.

En este ejemplo, haremos una solicitud GET a un servidor que acepta parámetros en la URL. Los parámetros que enviaremos serán un nombre y una edad:

Python
import pycurl

def main():
    # Crear una instancia de pycurl
    curl = pycurl.Curl()

    # Establecer la URL
    curl.setopt(pycurl.URL, 'https://example.com/api/users?name=John+Doe&age=30')

    # Realizar la solicitud
    curl.perform()

    # Obtener el código de estado
    code = curl.getinfo(pycurl.HTTP_CODE)

    # Imprimir el código de estado
    print(code)

if __name__ == '__main__':
    main()

Este código imprimirá el código de estado de la respuesta HTTP. En este caso, el código de estado debería ser 200, que indica que la solicitud se realizó correctamente.

Conclusión

En este tutorial, aprendimos a acceder a servicios web con pycurl en Python. pycurl es una biblioteca poderosa que nos permite realizar una amplia gama de solicitudes HTTP.