Swift Alamofire用数据设置请求正文
在objC中,我会:Swift Alamofire用数据设置请求正文,swift,networking,alamofire,Swift,Networking,Alamofire,在objC中,我会: NSData *postData = ... NSMutableURLRequest *request = ... [request setHTTPBody:postData]; 在斯威夫特阿拉莫菲尔怎么办 Alamofire.request(url, method: .post, parameters: nil, encoding: URLEncoding.default, headers: headers) request.validate().respons
NSData *postData = ...
NSMutableURLRequest *request = ...
[request setHTTPBody:postData];
在斯威夫特阿拉莫菲尔怎么办
Alamofire.request(url, method: .post, parameters: nil, encoding: URLEncoding.default, headers: headers)
request.validate().responseJSON {
...
}
Alamfire接受
[字符串:任意]
do {
let params = try JSONSerialization.jsonObject(with: data, options: []) as! [String:Any]
Alamofire.request(url, method: .post, parameters:params, encoding: JSONEncoding.default, headers: headers)
request.validate().responseJSON {
...
}
}
catch {
print(error)
}
Swift 4.2
Alamofire.request(url, method: .post, parameters: [:], encoding: "test", headers: [:])
extension String: ParameterEncoding {
public func encode(_ urlRequest: URLRequestConvertible, with parameters: Parameters?) throws -> URLRequest {
var request = try urlRequest.asURLRequest()
request.httpBody = data(using: .utf8, allowLossyConversion: false)
return request
}
}
Alamfire接受
[字符串:任意]
do {
let params = try JSONSerialization.jsonObject(with: data, options: []) as! [String:Any]
Alamofire.request(url, method: .post, parameters:params, encoding: JSONEncoding.default, headers: headers)
request.validate().responseJSON {
...
}
}
catch {
print(error)
}
Swift 4.2
Alamofire.request(url, method: .post, parameters: [:], encoding: "test", headers: [:])
extension String: ParameterEncoding {
public func encode(_ urlRequest: URLRequestConvertible, with parameters: Parameters?) throws -> URLRequest {
var request = try urlRequest.asURLRequest()
request.httpBody = data(using: .utf8, allowLossyConversion: false)
return request
}
}
使用Alamofire和Swifty Json库进行适当的api调用和Json解析 迅捷Json 阿拉莫菲尔 首先在[String:Any]类型中创建参数列表
func CallAPI(){
let parameters: [String: Any] = [
"Username": "Admin",
"Password": "123456",
"Language_Code": "EN"]
Alamofire.request("Your API Url", method: .post, parameters: parameters, encoding: JSONEncoding.default)
.responseJSON { response in
if((response.result.value) != nil) {
let ResultJson = JSON(response.result.value!)
print("ResultJson==",ResultJson)
}
}
}
使用Alamofire和Swifty Json库进行适当的api调用和Json解析 迅捷Json 阿拉莫菲尔 首先在[String:Any]类型中创建参数列表
func CallAPI(){
let parameters: [String: Any] = [
"Username": "Admin",
"Password": "123456",
"Language_Code": "EN"]
Alamofire.request("Your API Url", method: .post, parameters: parameters, encoding: JSONEncoding.default)
.responseJSON { response in
if((response.result.value) != nil) {
let ResultJson = JSON(response.result.value!)
print("ResultJson==",ResultJson)
}
}
}
设置
参数
[/some key:“some data”]和编码:
JSONEncoding。默认值
取决于postData
的性质,因为一般情况下,您宁愿只提供阿拉莫菲尔字典
,它会为您准备请求的正文。如果您必须构建请求,实际上您可以直接使用Alamofire(例如)发送请求,但在这种情况下,您可以将URL和方法设置为URLRequest
的一部分,而不是此方法的参数。你必须非常小心标题之类的东西。也许你可以告诉我们postData的样子,我们可以提供进一步的建议。实际上,它是一个zip存档。如下所示,Sh_Khan注释可能会有所帮助。设置参数
[“一些键”:“一些数据”]和编码:
jsonecoding。默认值
它取决于postData
的性质,因为通常情况下,您希望只提供阿拉莫菲尔字典
,它将为您准备请求的主体。如果您必须构建请求,实际上您可以直接使用Alamofire(例如)发送请求,但在这种情况下,您可以将URL和方法设置为URLRequest
的一部分,而不是此方法的参数。你必须非常小心标题之类的东西。也许你可以告诉我们postData的样子,我们可以提供进一步的建议。实际上,它是一个zip存档。看起来下面的Sh_Khan注释可以提供帮助。let data=“test”。data(使用:.utf8)let params=try?JSONSerialization.jsonObject(带有:data,选项:[])as![String:Any]params是nil??因为test是一个字符串,它的数据不能被强制转换为[String:Any]
,你能让它像[“someKey”:“test”]
?在这种情况下,我可以设置参数:作为字典而不必尝试JSONSerialization等,但我需要与目标C中相同的东西:[请求setHTTPBody:postData];我不知道怎么做。let data=“test”。data(使用:.utf8)let params=try?JSONSerialization.jsonObject(带有:data,选项:[])as![String:Any]params是nil??因为test是一个字符串,它的数据不能被强制转换为[String:Any]
,你能让它像[“someKey”:“test”]
?在这种情况下,我可以设置参数:作为字典而不必尝试JSONSerialization等,但我需要与目标C中相同的东西:[请求setHTTPBody:postData];我不知道怎么做。