gpt4 book ai didi

ios - Alamofire 对 Base64 字符串的响应

转载 作者:行者123 更新时间:2023-11-29 00:12:33 27 4
gpt4 key购买 nike

我正在使用 Alamofire 进行网络请求。除了一个问题外,它工作正常。

manager!.request(mutableURLRequest).responseJSON { (response) in
switch response.result {
case .Success:
if let value = response.result.value {
print("JSON: \(value)") //**problem**
}
case .Failure(let error):
print(error)
}

}

服务器响应格式为:

"result" : [
{
"rec_name" : "1.jpg",
"data": {
"base64": "/9j/4AAQSkZ",
"__class__": "bytes"
},
"id" : 9,
"name" : "1.jpg"
},
{
"rec_name" : "2.jpg",
"data": {
"base64": "/9j/4AAQSkZ",
"__class__": "bytes"
},
"id" : 10,
"name" : "2.jpg"
}
],
"id" : 0
}

但我得到如下信息:data(base64 String) is null

"result" : [
{
"rec_name" : "1.jpg",
"data" : null,
"id" : 9,
"name" : "1.jpg"
},
{
"rec_name" : "2.jpg",
"data" : null,
"id" : 10,
"name" : "2.jpg"
}
],
"id" : 0
}

我是否漏掉了 base64 字符串?我认为它在一个月前就可以工作,但现在我遇到了问题。

如果我通过 POSTMAN 发出相同的请求,那么它工作正常!

谢谢,

最佳答案

我可以给你图书馆建议SwiftyJSON .该库允许您轻松地在 Swift 中解析 JSON。另外,还有扩展AlamofireSwiftyJSON它结合了 Alamofire 和 SwiftyJSON。以下是您的请求的示例:

if let urlToTest = URL.init(string: "your_URL") {

Alamofire.request(urlToTest,
method: .get,
parameters: nil,
encoding: JSONEncoding.default,
headers: nil)
.responseSwiftyJSON(completionHandler: { (response:DataResponse<JSON>) in

let jsonResult = response.result
if let jsonResultValue = jsonResult.value {

if let resultArray = jsonResultValue["result"].array {

if resultArray.count > 0 {

if let itemData = resultArray[0]["data"].dictionary {

if let itemDataBase64 = itemData["base64"]?.string {

print("Base 64 field value \(itemDataBase64)")
}
}
}
}
}
})
}

关于ios - Alamofire 对 Base64 字符串的响应,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46031074/

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