Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/swift/18.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/azure/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Swift Alamofire上传功能打印响应_Swift_Alamofire - Fatal编程技术网

Swift 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")

这是我的alamofire函数

        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包含多个对象,但没有包含在数组中。请与您的后端开发人员联系,并获得一个示例响应。如何使用这些响应?