gpt4 book ai didi

swift - Alamofire post 请求将数据作为数组发送

转载 作者:行者123 更新时间:2023-11-30 11:44:54 25 4
gpt4 key购买 nike

我正在使用基于 php 的 Web 服务,它接受 post 变量。当我在 postman 中运行它时,它工作正常,但是当我在代码中从 Alamofire 运行它时,网络开发人员说他正在数组中接收请求。以下是服务器收到的请求:

{"{\"gameDate\":\"2018-03-31_12:43:37\",\"gameFee\":\"55\",\"gameInstruction\":\"\",\"gametitle\":\"ttt\",\"key\":\"AAAA\",\"latitude\":\"\",\"longitude\":\"\",\"numOfPlayers\":20,\"privacy\":0,\"status\":0,\"uid\":\"aaaaa\"}":"","0":""}

以下是我在 Alamofire 中发送请求的方式:

Alamofire.request(url, method: .post, parameters: param, encoding: JSONEncoding.default, headers: ["Content-Type":"application/x-www-form-urlencoded"]).responseJSON {
response in
switch response.result {
case .success:
completionHandler(Result.Success(response.result.value))
break
case .failure(let error):
print(error)
completionHandler(Result.Failure(.serverConnectionFailure))
}
}

参数:

["key":appKey as AnyObject, "uid":event.uid as AnyObject,"gametitle":event.gameTitle as AnyObject,"gameDate":event.gameDate as AnyObject,"gameFee":event.gameFee as AnyObject,"gameInstruction":event.gameInstruction as AnyObject,"latitude":event.latitude as AnyObject,"longitude":event.longitude as AnyObject,"numOfPlayers":event.numOfPlayers as AnyObject,"privacy":event.privacy as AnyObject, "status":event.status as AnyObject]

如何将其转换为php服务接受的正常键值请求?

编辑:我的 postman 请求有效: enter image description here

最佳答案

您必须以字典的形式发送参数(即[String: Any])。

将类转换为 [String: Any] :-

//Protocol for converting Class to Dictionary
protocol JSONAble {}

extension JSONAble {

func toDict() -> [String : Any] {
var dict = [String : Any]()
let otherSelf = Mirror(reflecting: self)
for child in otherSelf.children {
if let key = child.label {
dict[key] = child.value
}
}
return dict
}
}

//Request Parameters Class
class request : JSONAble {

//MARK:- Properties
var gameDate = String()
var gameFee = String()
var gameInstruction = String()
.
.

//MARK:- Constructor
init(gameDate : String?, gameFee: String?, gameInstruction: String?) {
self.gameDate = gameDate
self. gameFee = gameFee
self. gameInstruction = gameInstruction
}
}

使用:-

var params : [String : Any]?

if let jsonableRequest = request as? JSONAble {
params = jsonableRequest.toDict()
}

=> 作为请求发送此参数。

关于swift - Alamofire post 请求将数据作为数组发送,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48960450/

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