2016-04-09 12 views
-2

私はREST APIを使用していますが、使用しようとしていますが、エラーが発生しています。これをlinuxコマンドラインで直接実行すると動作します。以下は、API ##以下のREST 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 + Requestsコードにあなたのcurlコマンドを変換しますかなり便利"Convert cURL syntax to Python" serviceありパイソン

#/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 
+0

をurllib2の使用して、私は、エラーの下に取得しています ファイル ""、 1行目、 ファイル "/usr/lib64/python2.6/urllib2.py"、行126、urlopen 戻り値_opener.open(url、data、timeout) ファイル "/usr/lib64/python2.6 /urllib2.py "、l ine 397、open レスポンス= meth(req、response) http /レスポンスの "/usr/lib64/python2.6/urllib2.py"、行510、 'http'、リクエスト、レスポンス、コード、msg、hdrs ) ファイル "/usr/lib64/python2.6/urllib2.py"、行435、エラー return self._call_chain(* args) F – shankar

答えて

0

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 
+0

'body = str(body)'が間違っていると、 'json'をインポートし、' JSON.dumps() 'を使ってデータを有効なJSONとしてエンコードする必要があります。 – augurar

+0

@augurar、私はPythonの初心者です。上のコードでやる方法を教えてください。 – shankar

2

で私のコードです。ここで

が、それは(いくつかの改良で)生成するものである:トレースバック(最新の呼び出しの最後):

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)) 
+0

我々は持っていないので、urllibとurllib2ではできませんインストールされているサーバーにパッケージをリクエストします。 urllibとurllib2 @alecxeを手伝ってください。 – shankar

関連する問題