her*_*ara 13 django post apachebench
我正在尝试使用ab向使用django构建的表单发出HTTP POST请求.
我正在使用以下行:
ab -n 10 -C csrftoken=my_token -p ab_file.data -T application/x-www-form-urlencoded http://localhost:8000/
Run Code Online (Sandbox Code Playgroud)
我ab_file.data看起来像这样:
url=my_encoded_url&csrfmiddlewaretoken=my_token
Run Code Online (Sandbox Code Playgroud)
它始终返回403状态代码.
当我使用curl相同的参数时,它的工作原理.卷曲线:
curl -X POST -d "url=my_encoded_url&csrfmiddlewaretoken=my_token" --cookie "csrftoken=my_token" http://localhost:8000/
Run Code Online (Sandbox Code Playgroud)
我怎样才能做到这一点?
jac*_*321 16
文件必须具有正确的url-encode数据.如果你手动进行url-encode,就很容易像空白一样错误编码.最好以编程方式进行.请参阅另一个答案: 关于如何使用Python创建此类文件的Apache Bench和POST数据(例如:post.data)
然后使用:
ab -T 'application/x-www-form-urlencoded' -n 10 -p post.data http://localhost:8080/
使用ab时,数据文件的全部内容必须包装在一行中 - 如果它通常是扩展的JSON,它将无声地失败.因此,对于curl工作正常的数据文件中的帖子将失败,直到您执行此操作.
提示:如果使用Atom编辑器,请选择all并按Cmd-J将所有内容包装到一行.
@jacobm654321,
当然,最好的办法是以编程方式对 URL 进行编码。但我的问题不是这个。我的问题是包含发布数据的文件在文件末尾有一个空行。EditorConfig 把它放在那里。删除该空行后,一切正常。
不管怎么说,还是要谢谢你。
| 归档时间: |
|
| 查看次数: |
26348 次 |
| 最近记录: |