在iOS应用程序中使用Flask中的返回值

时间:2019-01-05 22:52:31

标签: python ios swift flask alamofire

我正在尝试使用flask作为我的iOs应用程序的后端。当前它似乎正在运行,并且后端托管在heroku上。烧瓶后端看起来像这样:

@app.route('/get_token', methods=['POST'])
def create_token():
    token = make_token()
    return token

我可以运行此功能并通过swift(使用alamofire)使用如下代码片段确认其运行:

let url = "https://my-backend.herokuapp.com/get_token"
Alamofire.request(url, method: .post, parameters: nil, encoding: JSONEncoding.default)

运行正常。但是现在我想用flask的返回值做一些事情(特别是从flask保存令牌)。但是我对如何做到这一点感到困惑。有什么建议吗?

1 个答案:

答案 0 :(得分:1)

我将从Flask返回一个JSON响应,然后您可以轻松地解析该JSON对象,但是您可以在iOS应用中选择该对象。 Flask具有内置方法jsonify,可轻松创建JSON响应。

您的回复看起来像return jsonify(token=token)

使用Alamofire解析JSON:

Alamofire.request(url, method: .post, parameters: parameters, encoding: JSONEncoding.default)
            .responseJSON { response in
                print(response)
            //to get status code
            if let status = response.response?.statusCode {
                switch(status){
                    case 201:
                        print("example success")
                    default:
                        print("error with response status: \(status)")
                }
            }
            //to get JSON return value
            if let result = response.result.value {
                let JSON = result as! NSDictionary
                print(JSON)
            }

        }

来源:https://stackoverflow.com/a/33022923/6685140