我想将密码发布到服务器。这是服务器的源代码(主要是):
<FORM ENCTYPE="multipart/form-data" METHOD=POST>
Password:<INPUT NAME="pw1" TYPE="password">
Password:<INPUT NAME="pw2" TYPE="password">
<INPUT TYPE="submit" VALUE="Confirm">
以下是我的代码:
import requests
url = 'http://192.168.0.1/pw'
file = {"pw1":"abc","pw2":"abc"}
r = requests.post(url, files = file)
来自wireshark,我得到:
--4d4bb99654064447b31a7afb787e5dbc
Content-Disposition: form-data; name="pw1"; filename="pw1"
abc
--4d4bb99654064447b31a7afb787e5dbc
Content-Disposition: form-data; name="pw2"; filename="pw2"
abc
--4d4bb99654064447b31a7afb787e5dbc--
我的期望是没有filename="pw1"/"pw2"
,即
--4d4bb99654064447b31a7afb787e5dbc
Content-Disposition: form-data; name="pw1"
abc
--4d4bb99654064447b31a7afb787e5dbc
Content-Disposition: form-data; name="pw2"
abc
--4d4bb99654064447b31a7afb787e5dbc--
只有这样才能通过服务器识别电报。
如何解决处理邮件请求?如果我想在这种情况下使用请求库,是否必须使用files
?谢谢你的帮助。
答案 0 :(得分:2)
对于您发布的表单html,您不必在文件dict中发送输入元素。 以下代码段应该有效 -
import requests
url = 'http://192.168.0.1/pw'
data = {"pw1":"abc","pw2":"abc"}
files = {'file': ''}
r = requests.post(url, data=data, files=files)