Search code examples
djangopostapachebench

Make a POST request using ab (apache benchmarking) on a django server


I'm trying to make a HTTP POST request using ab to a form built with django.

I'm using the following line:

ab -n 10 -C csrftoken=my_token -p ab_file.data -T application/x-www-form-urlencoded http://localhost:8000/

My ab_file.data looks like this:

url=my_encoded_url&csrfmiddlewaretoken=my_token

It always returns a 403 status code.

When I use curl using the same parameters, it works. The curl line:

curl -X POST -d "url=my_encoded_url&csrfmiddlewaretoken=my_token" --cookie "csrftoken=my_token" http://localhost:8000/

How can I do that?


Solution

  • @jacobm654321,

    for sure, the best thing to do is encode the URL programmatically. But my problem wasn't that. My problem is that the file containing the post data had a blank line at end of file. EditorConfig put it there. After remove that blank line, everything worked well.

    Thanks anyway.