Pycurl i io.StringIO - pycurl.error: (23, „Niepowodzenie wpisywania treści”)

Przenoszę eBay sdk do python3 i natknąłem się na następujący problem.

Używam pycurl do wysyłania niektórych żądań HTTP. Oto jak go skonfigurować:

    self._curl = pycurl.Curl()
    self._curl.setopt(pycurl.FOLLOWLOCATION, 1)
    self._curl.setopt(pycurl.URL, str(request_url))
    self._curl.setopt(pycurl.SSL_VERIFYPEER, 0)

    self._response_header = io.StringIO()
    self._response_body = io.StringIO()

    self._curl.setopt(pycurl.CONNECTTIMEOUT, self.timeout)
    self._curl.setopt(pycurl.TIMEOUT, self.timeout)

    self._curl.setopt(pycurl.HEADERFUNCTION, self._response_header.write)
    self._curl.setopt(pycurl.WRITEFUNCTION, self._response_body.write)

Gdy wywołam self._curl.perform (), pojawia się następujący błąd:

pycurl.error: (23, 'Failed writing body (1457 != 1460)')

O ile wiem, oznacza to, że istnieje problem z funkcją zapisu, ale nie mogę dokładnie zrozumieć, co to jest. Może być związane z migracją z modułu StringIO do io, ale nie jestem pewien.

UPD: Próbowałem:

    def body(buf):
        self._response_body.write(buf)

    def header(buf):
        self._response_header.write(buf)

    self._curl.setopt(pycurl.HEADERFUNCTION, header)
    self._curl.setopt(pycurl.WRITEFUNCTION, body)

i to działa. Próbowałem zrobić tę samą sztuczkę z lambdami (zamiast definiować te niezręczne funkcje, ale to nie zadziałało).

questionAnswers(1)

yourAnswerToTheQuestion