2013-08-06 150 views
2

我想用django调用一个使用POST的RESTful api。我知道如何做GET,但我该如何做POST?Django POST curl REST api

对于GET,我用requests.get(...)

API调用是:

curl -v -X POST -H "Content-Type: application/json" \ 
    -H "Accept: application/json" \ 
    -X POST \ 
    --user user:password \ 
    https://this.is.an.external.domain \ 
    -d "{\"name\": \"Marcus0.1\",\"start\": 500000,\"end\": 1361640526000}" 

更新

所以,我发现requests.post,但如何转化上述curl命令

+0

看起来像你的问题已经回答了(在这个问题)这里:http://stackoverflow.com/questions/9958039/using-python-requests-library –

+0

这有什么好做的Django。这是一个关于'请求'的基本问题。 – vad

回答

2

将curl命令转换为Python请求调用将是:

# construct a python dictionary to serialize to JSON later 
item = { "name": "Marcus0.1", "start": 500000, "end": 1361640526000 } 

resp = requests.post("https://this.is.an.external.domain", 
       data=json.dumps(item), # serialize the dictionary from above into json 
       headers={ 
         "Content-Type":"application/json", 
         "Accept": "application/json" 
         }) 

print resp.status_code 
print resp.content 
+1

我想你错过了身份验证。 =) – Lukasa