Search code examples
iosswiftresponsealamofireimage-uploading

Extract Response message from Alamofire upload Image


I need to extract the json response from the post request for uploading images to the server using Alamofire and uploading image as multipartformdata by following code

    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)
            }

        }

    )

When I print the response ,I am getting

    (<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;
})

How can I extract the Path1 and Path2 value as String from the response ?


Solution

  • Found the solution to get the path1 and path2 from the response by

      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)
    
                    }
    

    Thus path1 and path2 can be extracted from the response.