On 8 Apr, 2008, at 04:28, Teemu Harju wrote:
...
My problem is that I'm experimenting with "trial" to be able to test my code. (I've heard that it is a wise thing to do ;-)). What I have is a simple HTTP resource that allows POSTing data. I made this example to illustrate my problem...
...
def test_postdata(self): d = client.getPage(self.getURL("test"), method="POST", postdata=urllib.urlencode({"test": "data"})) d.addCallback(self.failIfEqual, "{}") return d
You need to specify a Content-Type in your POST request, e.g.: d = client.getPage(self.getURL("test"), method="POST", postdata=urllib.urlencode({"test": "data"}), headers={"Content-Type": "application/x- www-form-urlencoded"}) Otherwise, your POST request is sent as text/html, and the HTTP server code won't know to parse args out of the request body. (Probably this should have gone to twisted-web rather than twisted- python, since in the end it wasn't really about trial, but http ;). --Grant