Swift Alamofire上传功能打印响应
这是我的alamofire函数Swift Alamofire上传功能打印响应,swift,alamofire,Swift,Alamofire,这是我的alamofire函数 AF.upload( multipartFormData: { multipartFormData in multipartFormData.append(imageData, withName: "imagePath" , fileName: "profile-image.png", mimeType: "image/png")
AF.upload(
multipartFormData: { multipartFormData in
multipartFormData.append(imageData, withName: "imagePath" , fileName: "profile-image.png", mimeType: "image/png")
for (key, value) in params {
multipartFormData.append((value as AnyObject).data(using: String.Encoding.utf8.rawValue)!, withName: key)
}
print(multipartFormData.contentLength)
},
to: URLLink, method: .post, headers: headers)
.downloadProgress { progress in
print(progress)
}
.response { response in
print(response.result)
}
.responseJSON(completionHandler: {data in
print(data)
})
如何以JSON格式打印响应,以便根据提供的信息处理来自服务器的响应
response.result和response.value与普通请求函数的功能不同
.responseJSON()
没有响应服务器的响应。打印的数据是:
failure(Alamofire.AFError.responseSerializationFailed(reason: Alamofire.AFError.ResponseSerializationFailureReason.jsonSerializationFailed(error: Error Domain=NSCocoaErrorDomain Code=3840 "Garbage at end." UserInfo={NSDebugDescription=Garbage at end.})))
但是,如果成功,图像和数据将发送到服务器/数据库。选项1 Alamofire提供了现成的JSON序列化程序,它是
responseJSON()
///添加请求完成后要调用的处理程序。
///
///-参数选项:JSON序列化读取选项。默认为“.allowFragments”。
///-参数completionHandler:请求完成后执行的闭包。
///
///-返回:请求。
@可丢弃结果
公共职能部门(
队列:DispatchQueue?=nil,
选项:JSONSerialization.ReadingOptions=.allowFragments,
completionHandler:@escaping(DownloadResponse)->Void)
->自我
选项2
response()
是一种更通用的方法。您可以将响应序列化为自己的输出类型(JSON、字符串等)
这是response()
方法的函数头。您可以通过指定responseSerializer
来指定所需的输出类型
///添加请求完成后要调用的处理程序。
///
///-参数队列:调度完成处理程序的队列。
///-参数responseSerializer:负责序列化请求、响应、,
///和目标url中包含的数据。
///-参数completionHandler:请求完成后要执行的代码。
///
///-返回:请求。
@可丢弃结果
公共职能部门的回应(
队列:DispatchQueue?=nil,
响应器:T,
completionHandler:@escaping(DownloadResponse)->Void)
->自我
您可以使用此静态方法DownloadRequest.jsonResponseSerializer()
获取response()
方法中所需的JSON序列化程序
公共静态函数jsonResponseSerializer(
选项:JSONSerialization.ReadingOptions=.allowFragments)
->下载响应器
使用。responseJSON{}
尝试过。我会在@Dilany上面发布我的代码。你需要弄清楚为什么它认为你的JSON最后有垃圾,你可能需要从中过滤出一些东西。可能响应JSON包含多个对象,但没有包含在数组中。请与您的后端开发人员联系,并获得一个示例响应。如何使用这些响应?