如何使用下面的restapi,

2024-04-24 14:05:47 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个restapi,我正在尝试使用它,但是得到了一个错误。直接在linux命令行上运行它就可以了。下面是API##

curl -v -s --insecure -X POST -H "X-Auth-User: <groupApiId>" -H "X-Auth-Key: <authKey>" -H "X-Auth-Requester: <requesterCorpId>" -H "Content-Type: application/json" -d "{\"serverList\":[\"xxxxxxxx\"],\"ticket\":\"IM154587704\",\"expirationDate\":\"2015-07-28T16:36:00\",\"}" http://xxxxx.com/filters/createFilter

下面是我用python编写的代码

#/usr/bin/env python


import time
import urllib
import urllib2
headers={"X-Auth-User": "xxx",
        "X-Auth-Key": "xxxxxxxxxxxxxxxxxxxxxx",
        "X-Auth-Requester" : "12345",
        "Content-Type": "application/json"}

header["X-Auth-Requester"]=username

body_content={"serverList":'yyyyyy',
          "ticket":'1234',
          "expirationDate":"2016-04-12T16:36:00"}
url="http://xxxxxxxxxx.com/filters/createFilter"

body = urllib.urlencode(body_content)
req = urllib2.Request(url, body, headers)
try:
    response = urllib2.urlopen(req)
    the_page = response.read()
    filter_result=response.code
    if filter_result==200:
    print(" success\n")
except urllib2.HTTPError as e:
    print e.code

Tags: keyimportauthjsonapplicationresponsetyperequester
2条回答

使用urllib2

import urllib2
import json
headers = {
    'X-Auth-User': 'xxx',
    'X-Auth-Key': 'yyyy',
    'X-Auth-Requester ':'uuuu',
    'Content-Type': 'application/json',
   }

body = {"serverList":["xxxxx"],
        "ticket":cm_or_im,
        "expirationDate":"2016-04-10T16:36:00",
       }

body = json.dumps(body)


url="http://xxxxxx.com/filters/createFilter"

req = urllib2.Request(url,body,headers)
try:
    response = urllib2.urlopen(req)
    the_page = response.read()
    filter_result = response.code
    if filter_result==200:
        print("success\n")
except urllib2.HTTPError as e:
    print e.code

有一个非常方便的"Convert cURL syntax to Python" service可以立即将cURL命令转换为Python+Requests代码。你知道吗

以下是它产生的结果(有一些改进):

import json
import requests

headers = {
    'X-Auth-User': '',
    'X-Auth-Key': '',
    'X-Auth-Requester': '',
    'Content-Type': 'application/json',
}

data = {
    "serverList":["xxxxxxxx"],
    "ticket":"IM154587704",
    "expirationDate":"2015-07-28T16:36:00",
    "matchStringList":["Testing123"]
}

response = requests.post('http://mymonitoring-qa.fmr.com/filters/createFilter', 
                         headers=headers, 
                         data=json.dumps(data))

相关问题 更多 >