相关疑难解决方法(0)

如何在python中发送带有请求的"multipart/form-data"?

如何multipart/form-data在python中发送请求?如何发送文件,我理解,但如何通过这种方法发送表单数据无法理解.

python multipartform-data python-2.7 python-requests

178
推荐指数
7
解决办法
21万
查看次数

如何使用 python 请求发送表单数据?

我正在尝试使用 python 3 和 requests 库发送 POST 请求。当我使用邮递员时,我得到了我期望的结果,因此我复制了邮递员生成的代码,这样它就可以工作了。

这是邮递员代码生成的代码:

import requests

payload = "name=\"claveElector\"\r\n\r\nABCDEF01234567H400\r\nname=\"numeroEmision\"\r\n\r\n01\r\nname=\"ocr\"\r\n\r\n4158093946570\r\nname=\"g-recaptcha-response\"\r\n\r\nsome-captcha\r\nname=\"modelo\"\r\n\r\na"

url = "https://listanominal.ine.mx/scpln/resultado.html"

payload = "------WebKitFormBoundary7MA4YWxkTrZu0gW\r\nContent-Disposition: form-data; name=\"claveElector\"\r\n\r\nTPRSJC95010209H400\r\n------WebKitFormBoundary7MA4YWxkTrZu0gW\r\nContent-Disposition: form-data; name=\"numeroEmision\"\r\n\r\n01\r\n------WebKitFormBoundary7MA4YWxkTrZu0gW\r\nContent-Disposition: form-data; name=\"ocr\"\r\n\r\n4158093946570\r\n------WebKitFormBoundary7MA4YWxkTrZu0gW\r\nContent-Disposition: form-data; name=\"g-recaptcha-response\"\r\n\r\nsome-re-captcha\r\n------WebKitFormBoundary7MA4YWxkTrZu0gW\r\nContent-Disposition: form-data; name=\"modelo\"\r\n\r\na\r\n------WebKitFormBoundary7MA4YWxkTrZu0gW--"
headers = {
    'content-type': "multipart/form-data; boundary=----WebKitFormBoundary7MA4YWxkTrZu0gW",
}

response = requests.request("POST", url, data=payload, headers=headers)

print(response.text)
Run Code Online (Sandbox Code Playgroud)

更清楚的是为什么不起作用的部分是两个结果中存在的差异。

通过邮递员代码我得到了这个

该代码是使用以下数据生成的: 该代码是使用以下数据生成的

所以我尝试使用自己的代码执行相同的操作,我尝试发送文件部分和数据部分中的数据,但不起作用。阅读其他 StackOverflow 问题后,他们建议使用属于 Requests Toolbelt 库一部分的 MultipartEncoder。

所以我的实现最终是这样的:

import requests
from requests_toolbelt.multipart.encoder import MultipartEncoder

clave_elector = "ABCDEF01234567H400"
numero_emision = "01"
ocr = "1234567846570"
modelo = "a"

params = {
    "claveElector": clave_elector,
    "numeroEmision": numero_emision, …
Run Code Online (Sandbox Code Playgroud)

python multipartform-data python-3.x python-requests postman

7
推荐指数
1
解决办法
3万
查看次数