24 lipca 2015

[python] HTTP POST requests - PycURL

Kolejne podejście do wykonania HTTP POST requesta (poprzednie opisałem tutaj). Przydatne linki:
Biblioteka znacznie bardziej popularna i posiadająca wiele portów do różnych języków, co wiąże się z tym, że łatwiej jest odnaleźć przykłady i rozwiązać potencjalne problemy. W rozdziale Quick Start, znajduje się kilka interesujących, z omówieniem ich mechanizmów. Ciekawy wydał mi się pycrul.WRITEDATA. Z tego co udało mi się rozumieć, biblioteka nie posiada bufora na odpowiedź od serwera i to zadaniem aplikacji jest ustawienie go, dzięki tej opcji.
#! /usr/bin/env python3

import pycurl
import urllib.parse
from io import BytesIO

def post3():
    buffer = BytesIO()
    c = pycurl.Curl()

    c.setopt(pycurl.URL, 'http://requestb.in/kcco1337')
    c.setopt(pycurl.WRITEDATA, buffer)

    post_data = {'login': 'user1', 'password': 'hasło 1'}
    post_fields = urllib.parse.urlencode(post_data)
    c.setopt(pycurl.POST, 1)
    c.setopt(pycurl.POSTFIELDS, post_fields)

    c.perform()
    c.close()

    print(buffer.getvalue().decode('iso-8859-1'))
Raw body:
password=has%C5%82o+1&login=user1

Brak komentarzy:

Prześlij komentarz