gpt4 book ai didi

json - 快速登录到 json API

转载 作者:可可西里 更新时间:2023-11-01 02:01:54 24 4
gpt4 key购买 nike

我的 API 接受以下 JSON 进行登录:

{ "operation" : "login", "user": { "name": "username", "password": "password" } }

在 Xcode 中我已经尝试过:

let username : String = textFieldUserName.text!
let password : String = textFieldPassword.text!

let param = "{ \"operation\" : \"login\", \"user\": { \"username\": \"" + username + "\", \"password\": \"" + password + "\" } }"
let dict = convertToDictionary(text: param)

//making a post request
Alamofire.request(URL_USER_LOGIN, method: .post, parameters: dict).responseJSON{
response in
//printing response
print(response)
print (param)
//other handling removed
}

字典转换函数:

func convertToDictionary(text: String) -> [String: Any]? {
if let data = text.data(using: .utf8) {
do {
return try JSONSerialization.jsonObject(with: data, options: []) as? [String: Any]
} catch {
print(error.localizedDescription)
}
}
return nil
}

Postman 请求是:POST 到 http://myserver/api/v1/logmein/login.php请求正文设置为原始格式,包含:{ "operation": "login", "user": { "name": "username", "password": "password"} }

但我的 API 的响应始终是错误参数的错误消息...如果我将控制台中的参数粘贴到 Postman 并发出请求,一切正常。

也许有人可以帮助我?

最佳答案

您不应从 String 手动生成 JSON 对象。 Alamofire 接受 Dictionary 作为请求主体,因此使用 Dictionary 并且不生成 String,将其转换到 Data,然后尝试将其解码为 JSON 编码数据,因为它从来都不是正确的 JSON 数据。

let requestParameters = ["operation":"login","user":["name":"username","password":"password"]]
Alamofire.request(URL_USER_LOGIN, method: .post, parameters: requestParameters, encoding: JSONEncoding.default).responseJSON{...

关于json - 快速登录到 json API,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45670702/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com