如何让Python3请求库用post请求而不是0发送实际的ContentLength?

2024-04-20 11:43:34 发布

您现在位置:Python中文网/ 问答频道 /正文

所以,我一直在制作一个脚本来验证NetDoT安装。通常,浏览器将加载URL并使用我想要的cookie进行302重定向。相反,我的脚本得到了一个403无cookie。经过大量的调试,主要包括数据包捕获和FireFox篡改数据插件请求,并试图缩小请求库请求和FireFox请求之间的差距,我能够在FireFox中重现这个问题,方法是让它发送长度为0的内容,就像请求库一样。在

所以,现在我想知道如何让请求库发送一个大小合适的内容长度,而不是0。我搜索过谷歌,但没有找到任何明显的东西。我将python3和ubuntu14.04结合使用,以防有问题。在

那么,如何让请求库计算并发送正确大小的内容长度而不是0?在

这是我目前使用的。运行wireshark显示它发送的内容长度为0。在

import requests
s = requests.Session()
s.headers.update({'referer':  'http://my.server.com/netdot/'})
b = s.post('http://my.server.com/netdot/NetdotLogin', params={'destination' : '/netdot/', 'credential_0' : 'admin', 'credential_1' : 'password'})

(不,我没有使用password作为我的密码,我更清楚,我只是不想公开发布我的密码)。在


Tags: 脚本comhttp密码内容servercookiemy
1条回答
网友
1楼 · 发布于 2024-04-20 11:43:34

^{}参数用于传递url参数,而不是用于发送post内容。这就是为什么post请求的内容长度为0,因为它不包含任何内容。在

要正确地将数据作为内容而不是url参数传递,请改用data参数:

...
b = s.post('http://my.server.com/netdot/NetdotLogin', data={'destination' : '/netdot/', 'credential_0' : 'admin', 'credential_1' : 'password'})
...

相关问题 更多 >