首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将curl post转换为rest api to python

将curl post转换为rest api to python
EN

Stack Overflow用户
提问于 2016-12-22 18:06:26
回答 1查看 579关注 0票数 0

我有这个curl命令:

代码语言:javascript
复制
curl -X POST -s -k -u "admin:Password" -d '

{
"add_content": {
    "errata_ids": ["RHSA-2016:2124","RHBA-2016:2889"]
},
"content_view_version_environments": [{
    "content_view_version_id": 28
}]
}
' \

-H "Accept:application/json,version=2" \ -H "Content-Type:application/json" \ https://satellite.example.com/katello/api/content_view_versions/incremental_update

我需要把它转换成python。

这是我到目前为止所得到的:

代码语言:javascript
复制
def post_json(location, json_data):


result = requests.post(
    location,
    data=json_data,
    auth=(USERNAME, PASSWORD),
    verify=SSL_VERIFY,
    headers=POST_HEADERS)

return result.json()

json_data = {
    "add_content": {
        "errata_ids": ["RHSA-2016:2124","RHBA-2016:2889"]
    },
    "content_view_version_environments": [{
        "content_view_version_id": 301
    }]
}

push_errata = post_json(katello_api + "content_view_versions + "/incremental_update/" + "content_view_version_environments/" + "add_content['RHSA-2016:1912'])

我要去找SyntaxError: invalid syntax

你能帮我把curl命令正确地“转换”成python吗?

EN

回答 1

Stack Overflow用户

发布于 2016-12-22 19:06:15

使用Authorization header,您可以执行以下操作:

代码语言:javascript
复制
import requests, base64, json

url = 'https://satellite.example.com/katello/api/content_view_versions/incremental_update'

headers = {
    'Accept': 'application/json,version=2',
    'Content-Type': 'application/json',
    'Authorization': 'Basic {}'.format(base64.b64encode('admin:Password'))}

data = {
    "add_content": {
        "errata_ids": ["RHSA-2016:2124","RHBA-2016:2889"]},
    "content_view_version_environments": [
        {"content_view_version_id": 28 }]}

response = requests.post(url=url, data=json.dumps(data), headers=headers)

您也可以使用不带Authorization头的auth参数,如下所示

代码语言:javascript
复制
from requests.auth import HTTPBasicAuth

headers = {
    'Accept': 'application/json,version=2',
    'Content-Type': 'application/json'}

response = requests.post(url, auth=HTTPBasicAuth('admin', 'Password'), data=json.dumps(data), headers=headers)
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/41281496

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档