2017-03-21 52 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