2017-03-21 60 views
0

example.py這個python的等效curl命令是什麼請求POST請求?

url="http://authserver:5000/account" 
params ={'username': username,'email': email, 'password': password} 
data = requests.post(url=url, params=params) 

這個例子上述作品。

我想我的問題簡單地說就是上面的帖子請求的等效curl命令是什麼?

一種令人尷尬的問題,但我已經閱讀了文檔,並檢查過,因此無法找到答案,更不用說我用它來做到這一點,只是忘記了如何。

我目前正在:

curl -d http://authserver:5000/account "user=test, email=test, password=test" 

但已經嘗試了許多其他變化和失敗的所有收益進行連接,連接被拒絕。

回答

0

試試這個:

curl -d "user=test&email=test&password=test" http://authserver:5000/account

+0

我仍然可以連接失敗,連接被拒絕 – david

1

它等同於:

curl -X POST 'http://authserver:5000/account/?username=test&password=password&[email protected]' 

一些暗示它找出來:

寫一個簡單的腳本來轉儲HTTP請求的詳細信息:

#!/usr/bin/env python2 
# -*- coding: utf-8 -*- 

from flask import Flask, request 

app = Flask("HttpDump") 

@app.route("/account/", methods=['POST']) 
def postAirService(): 
    print 'Headers: ' 
    print request.headers 
    print 'Payload: ' 
    print request.data 

if __name__ == '__main__': 
    app.run(host='0.0.0.0', port=6789, debug=False) 

,然後運行您反對它的腳本,它會得到信息:

Headers: 
Content-Length: 0 
User-Agent: python-requests/2.11.1 
Connection: keep-alive 
Host: localhost:6789 
Accept: */* 
Content-Type: 
Accept-Encoding: gzip, deflate 


Payload: 

127.0.0.1 - - [22/Mar/2017 05:45:49] "POST /account/?username=test&password=passwd&email=me%40email.com HTTP/1.1" 200 - 
+0

我知道我可以直接添加參數到URL,但其殺死我,我可以不記得我之前是如何做的,我沒有必要指定POST並且參數沒有附加到URL。 – david

+0

對不起,我沒有明白你的觀點,你的'request POST'的等價curl命令在答案中,還有什麼讓你感到困惑嗎? – shizhz