2014-01-23 31 views
5

我需要複製的機器人框架下面的API調用:如何使機器人框架POST(REST)API與

curl -X POST "http://xyz/api/createApp" -H "Content-Type:application/json" -d @/tmp/testfile.json

testfile.json有一個JSON的有效載荷。我無法將Json文件的內容作爲正文發送。

我已經導入了HTTP庫。但是沒有看到任何關鍵字來使用文件進行API調用。

回答

10

Bulkan的robotframework-requests很不錯。但是,如果你可以用更少的度日,你可以做你自己的本地的lib/posthttp.py中的幾行是這樣的:

import requests 
import json 

def do_requests_post(url=None, data=None, headers={"Content-Type":"application/json"}): 
    return requests.post(url, data=data, headers=json.loads(headers)) 

def do_requests_request(method="GET" url=None, data=None, headers={}): 
    return requests.request(url, method=method, data=data, headers=json.loads(headers)) 

注意,返回的對象是豐富和強大的「響應」,這具有成員函數.json()(如果.text被感知爲JSON,則返回字典)和.status_code(int)。使用雙反斜線和引號喜歡當

+1

注:1)這個mini-lib會給讀者留下類似cookies的東西; 2)你無法直接從RF調用請求的唯一原因是因爲RF的自動魔術病毒搜索混合了requests.Request對象和request.request()函數。 – MarkHu

0

它完美的作品:

捲曲-i -H '接受:應用/ JSON' -H '內容類型:應用程序/ JSON' -X POST -d「{\ 「target \」:\「5142221345 \」,\「source \」:\「432567890 \」,\「messages \」:[{\「format \」:\「AMR \」,\「data \ 「binarydata ... \」}]}「http://10.4.4.11:8089/v1/voice/add