如何发布' multipart / form-data'内容没有文件通过python请求?

时间:2017-08-28 07:19:47

标签: python python-requests

我想将密码发布到服务器。这是服务器的源代码(主要是):

<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?谢谢你的帮助。

1 个答案:

答案 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)