将HTTP请求发送到Python Flask服务器

问题描述

我正在尝试将python用作我的swift应用程序的后端。当我将请求发送到服务器时(烧瓶),我可以返回一个字符串,但是不能使用json.dumps()重新创建json。相反,我得到一个错误

这是我的Swift代码导入UIKit

let url = URL(string: "http://192.168.0.24:8080/login")!

var request = URLRequest(url: url)

request.httpMethod = "POST"

let param = ["username": "admin","password": "admin"]

request.httpBody = try JSONSerialization.data(withJSONObject: param,options: [])

let session = URLSession.shared

session.dataTask(with: request) { (data,responce,error) in
    print(String(data: data!,encoding: .utf8)!)
}.resume()

这也是我的python代码的片段

from flask import Flask,request
from userManagement import userManagement
import json

app = Flask(__name__)

x = {
    "name": "admin","username": "admin","password": "admin"
}
script = json.dumps(x)


@app.route("/")
def home():
    return "Home page"

@app.route("/login",methods=["GET","POST"])
def login():
    if request.method == "GET":
        return "GET requested"
    elif request.method == "POST":
        #checking = userManagement().loginCheck(request.data)
        #return checking

        print(json.dumps(request.data))
        return "HI"
    else:
        return "Invalid"


if __name__ == "__main__":
    app.run(host="192.168.0.24",port="8080",debug=True)

从我可以看到的问题出处:

print(json.dumps(request.data))

但是我不确定如何解决此问题,因为我不知道该过程如何在swift或python上工作。

解决方法

这里的问题是您的快速邮政编码,而不是python的flask代码。在非集成数据结构转换期间,Json转储通常会引发错误。另外,您可以尝试使用flasks jsonify打印json转储。 您还可以使用邮递员发布推送请求。