如何在Post请求中发送Form数据和json参数?

问题描述 投票:0回答:1

我正在尝试使用我在网络模块中搜索的参数构建jenkins作业的Post请求,并观察我们在发布请求时需要传递的表单数据。我创建一个名为有效载荷的dict并发送数据,但我得到400错误。如何在请求中发送此表单数据(注意还有json数据,不知道如何发送它)

表格数据:

name:user
value:foo
statusCode:303
redirectTo:.
Jenkins-Crumb:xyz
json:{"parameter": {"name": "user", "value": "foo"}, "statusCode": "303", "redirectTo": ".", "Jenkins-Crumb": "xyz"}
Submit:Build

码:

json = {"parameter": {"name": "user", "value": "foo"}, "statusCode": "303", "redirectTo": ".", "Jenkins-Crumb": "xyz"}
payload = {'json':json, 'Submit':'Build', "name": "user", "value": "foo", "statusCode": "303", "redirectTo": ".", "Jenkins-Crumb": "xyz"}
url_build_job = 'some valid and tested url'
response = requests.post(url_build_job, headers = {'Cookie':'abc'}, data= payload, proxies = Jenkins.proxyDict)
print(response)
python jenkins python-requests
1个回答
0
投票

如果您尝试使用JSON请求将HTTP POST数据发送到端点,则可以执行以下任一操作:

>>> import json

>>> url = 'https://api.jenkins.com/some/endpoint'
>>> payload = {'some': 'data'}

>>> r = requests.post(url, data=json.dumps(payload))

或者这(首选方式):

>>> url = 'https://api.github.com/some/endpoint'
>>> payload = {'some': 'data'}

>>> r = requests.post(url, json=payload)

有关更多详细信息,请参阅documentation

© www.soinside.com 2019 - 2024. All rights reserved.