[Twisted-Python] web client FileBodyProducer - transfer encoding

Kevin Mcintyre kebin70 at gmail.com
Mon Jan 30 17:16:54 MST 2017


Dealing with older apache, ruby, passenger setup.  Hoping to mimic behavior
and show OPS that chunked encoding isn't working correctly.

With python requests (http://docs.python-requests.org/en/master/) all POST
calls work correctly, but twisted requests are failing.

I'm thinking (and hoping) it's failing because twisted is chunking the post
body.  When I send the requests to a twisted endpoint like below the
requests are successful and the response is identical.

from twisted.web import server, resource
from twisted.internet import reactor

class Simple(resource.Resource):
    isLeaf = True
    def render_POST(self, request):
        print request.content.getvalue()
        return request.content.getvalue()

site = server.Site(Simple())
reactor.listenTCP(8080, site)
reactor.run()


On Mon, Jan 30, 2017 at 2:39 PM, Glyph Lefkowitz <glyph at twistedmatrix.com>
wrote:

>
> On Jan 30, 2017, at 13:47, Kevin Mcintyre <kebin70 at gmail.com> wrote:
>
> hey all - quick question.  Trying to understand FileBodyProducer as it
> pertains to POST.
>
> json_body = FileBodyProducer(StringIO(json.dumps({'key': 'value'})))
>
> agent.request("POST", ~*uri*, Headers({'User-Agent': ['AkamaiTest']}), json_body)
>
> Does the agent chunk the POST body?
>
> Maybe!
>
> Is this controllable?
>
> Not really.  The current implementation will certainly use chunked
> encoding sometimes, but there isn't a strong API guarantee of this anywhere.
>
> Any insight appreciated!
>
> You probably don't want to try to control this.  I believe that proxies
> are within their rights to mess around with chunk boundaries and re-buffer
> things, so you don't have any strong guarantees that chunk sizes will be
> preserved.
>
> Why is it that you want to control chunking in the first place?
>
> -glyph
>
>
> _______________________________________________
> Twisted-Python mailing list
> Twisted-Python at twistedmatrix.com
> http://twistedmatrix.com/cgi-bin/mailman/listinfo/twisted-python
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: </pipermail/twisted-python/attachments/20170130/ffd83b76/attachment-0002.html>


More information about the Twisted-Python mailing list