python - 如何在 Post 请求中连同 json 参数一起发送表单数据?
问题描述
我正在尝试使用我在网络模块中搜索的参数发出 Post 请求来构建 jenkins 作业,并观察到我们在发出 post 请求时需要传递的以下表单数据。我创建了一个名为 payload 的字典并将其与数据一起发送,但出现 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)
解决方案
如果您尝试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)
有关详细信息,请参阅文档。
推荐阅读
- jquery - 使用有效样式查找带有 jQuery 的 HTML 元素(继承自 CSS 类的样式,在元素上不明确)
- asp.net - How to Change AspNet Identity Password Hash to AspNet.Core Identity Password Hash
- java - 如何声明每个实现 Comparable 的 Java 对象列表
- javascript - 按超过 2 层深度的条件合并嵌套对象
- javascript - 如何从 JavaScript 执行下载的安装程序
- c - 在 C 语言中取消引用指向指针等的指针的指针
- docker - 无法在 gcloud 上部署容器
- php - 如何减去两个日期并以分钟为单位获得差异 PHP
- google-apps-script - Google 表格自动将自定义范围发送到电子邮件
- javascript - 使用 Create React App 在开发中代理