如何在Post请求中发送表格数据以及json参数?

时间:2018-08-30 12:21:33

标签: python jenkins python-requests

我正在尝试发出带有参数的jenkins作业的Post请求 我在网络模块中搜索,并观察到发出发帖请求时需要传递的以下表格数据。 我创建了一个称为有效负载的字典,并将其与数据一起发送,但出现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)

1 个答案:

答案 0 :(得分: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

相关问题