从Alamofire上传图片中提取响应消息

时间:2016-12-03 11:47:02

标签: ios swift response alamofire image-uploading

我需要从发布请求中提取json响应,使用Alamofire将图像上传到服务器,并通过以下代码将图像上传为多部分数据

    Alamofire.upload(
        .POST,
        "http://www.mywebsite.com/api/index.php/profileimg",
        headers: ["Authorization" : "No Auth"],
        multipartFormData: { multipartFormData in
             multipartFormData.appendBodyPart(data: jpegImage1, name: "image1", fileName: "img1", mimeType:  "image/jpeg")
        },
        encodingCompletion: { encodingResult in

            switch encodingResult {
            case .Success(let upload, _, _):

                upload.progress { bytesWritten, totalBytesWritten, totalBytesExpectedToWrite in
                    dispatch_async(dispatch_get_main_queue()) {
                    }
                }
                upload.validate()
                upload.responseJSON { response in
                print(response.1)
                print(response.2)
                print(response)
                }
            case .Failure(let encodingError):
                print(encodingError)
            }

        }

    )

当我打印回复时,我正在

    (<NSHTTPURLResponse: 0x165dc0e0> { URL: http://www.mywebsite.com/api/index.php/profileimg } { status code: 200, headers {
    Connection = close;
    "Content-Encoding" = gzip;
    "Content-Type" = "text/html";
    "Transfer-Encoding" = Identity;
    Vary = "Accept-Encoding";
} }), SUCCESS: {
    Path1 = "http://www.mywebsite.com/api/tmpimage/img1";
    Path2 = "http://www.website.com/api/tmpimage/img2";
    Result = success;
})

如何从响应中将Path1和Path2值提取为String?

1 个答案:

答案 0 :(得分:0)

找到解决方案,通过

从响应中获取path1和path2
  upload.responseJSON { response in

                print(response.1)
                print(response.2)
                print(response)

                    let dic1 =  (response.2.value as? NSDictionary)?.objectForKey("Path1") as! String
                    print(dic1)
                    let dic2 = (response.2.value as? NSDictionary)?.objectForKey("Path1") as! String
                    print(dic2)

                }

因此可以从响应中提取path1和path2。