2016-11-15 41 views
-1

下面是客户端:Python 3 Flask - 如何发送数据到服务器?

data = b'48958695427097097402529251103137444756' 
r = requests.post("http://127.0.0.1:5000", data=data) 

这里是服务器:

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

from flask import Flask, Response, request 

app = Flask(__name__) 

@app.route('/', methods=['POST', 'GET']) 
def get_data(): 
    print('Recieved from client: {}'.format(request.data)) 
    return Response('We recieved something…') 

if __name__ == ‘__main__’: 
    app.run(debug=True) 

客户端发送到服务器的字节串,但服务器只接收:B '' 为什么?

如何让服务器接收整个字节字符串? 谢谢。

回答

0

@app.route不包含任何method,所以你需要添加

@app.route('/',methods=['POST'])

为了了解@app.route是如何工作的,请参阅this

编辑你的代码

from flask import Flask, Response, request 

app = Flask(__name__) 

@app.route('/', methods=['POST']) 
def get_data(): 
    print('Recieved from client: {}'.format(request.data)) 
    return Response('We recieved something…') 

if __name__ == '__main__': 
    app.run(debug=True) 
+0

有方法,我不明白为什么它粘贴在这里后消失了,现在我在我的帖子中编辑它,它是正确的,但代码无法正常工作。 –

+0

请记住单击“标记为答案”解决问题的答案。这可以有益于其他社区成员阅读此主题。 –

-1

您错过了该行的结尾:

@app.route('/', methods=['POST']) 

这个小小的修复后,你的代码应该工作。

+0

有方法,我不明白为什么它粘贴在这里后消失了,现在我在我的帖子中编辑它,它是正确的,但代码无法正常工作。 –

+0

如果你尝试发送一个正常的字符串?它工作吗? –