Как отправить данные формы в запросе Post вместе с параметром json? - PullRequest
0 голосов
/ 30 августа 2018

Я пытаюсь сделать запрос Post для создания задания jenkins с параметрами Я ищу в сетевом модуле и обнаружил следующие данные формы, которые мы должны передать при отправке запроса. Я создаю 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)

1 Ответ

0 голосов
/ 30 августа 2018

Если вы пытаетесь отправить данные 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)

Подробнее см. В документации .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...