[Twisted-Python] web client FileBodyProducer - transfer encoding
Glyph Lefkowitz
glyph at twistedmatrix.com
Mon Jan 30 17:44:51 MST 2017
Gotcha. I guess what I meant was that you shouldn't care about this at the application level, but you're talking about an operational concern, not an application-level concern.
Perhaps this should be a tunable on Agent somehow. Can you file a ticket?
-glyph
> On Jan 30, 2017, at 18:16, Kevin Mcintyre <kebin70 at gmail.com> wrote:
>
> 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/ <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 <mailto:glyph at twistedmatrix.com>> wrote:
>
>> On Jan 30, 2017, at 13:47, Kevin Mcintyre <kebin70 at gmail.com <mailto: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 <mailto:Twisted-Python at twistedmatrix.com>
> http://twistedmatrix.com/cgi-bin/mailman/listinfo/twisted-python <http://twistedmatrix.com/cgi-bin/mailman/listinfo/twisted-python>
>
>
> _______________________________________________
> 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/59b2a5b0/attachment-0002.html>
More information about the Twisted-Python
mailing list