2016-11-15 6 views
-1

Hier ist Client:Python 3 Flask - Wie sende ich Daten an den Server?

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

Hier ist Server:

#! /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) 

Client-Server-Byte-String senden, aber Server erhält nur: b '' Warum?

Und wie make Server vollständige Byte-Zeichenfolge erhalten? Danke.

Antwort

0

Ihre @app.route enthält keine method so müssen Sie

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

Um hinzuzufügen, zu verstehen, wie @app.route Werke, this

bearbeitet Code von Ihnen

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

Es gab Methoden, ich verstehe nicht, warum es nach dem Einfügen hier verschwunden ist, jetzt habe ich es in meinem Beitrag bearbeitet und es ist korrekt, aber Code funktioniert sowieso nicht. –

+0

Bitte denken Sie daran, auf Antworten als Antwort zu klicken, um das Problem zu beheben. Dies kann für andere Community-Mitglieder hilfreich sein, die diesen Thread lesen. –

-1

beziehen Sie fehlen das Ende der Zeile in:

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

Nach dieser kleinen Korrektur sollte Ihr Code funktionieren.

+0

Es gab Methoden, ich verstehe nicht, warum es nach dem Einfügen hier verschwunden ist, jetzt habe ich es in meinem Beitrag bearbeitet und es ist korrekt, aber Code funktioniert sowieso nicht. –

+0

Und wenn Sie versuchen, eine normale Zeichenfolge zu senden? funktioniert es? –

Verwandte Themen