views:

45

answers:

1

I'm having issues converting/uploading a camera image to a remote SOAP web service.

Here's the code for converting the image to a byte array:

UIImage *image = [info objectForKey:UIImagePickerControllerEditedImage];
    if (image == nil)
        image = [info objectForKey:UIImagePickerControllerOriginalImage];

NSData *imageData = [NSData dataWithData:UIImagePNGRepresentation(image)];
    NSString *post_string = [NSString stringWithFormat:@"%@", imageData];

    NSData *postData = [post_string dataUsingEncoding:NSUTF8StringEncoding];
    NSString *postLength = [[NSString alloc] initWithFormat:@"%d", [postData length]];

Am I converting this image to a byte array properly?

Any help is appreciated.

A: 

You shouldn't need to convert the image to an NSString to post it to a web service, just to an NSData.

If you are using NSMutableURLRequest, you would then use - (void)setHTTPBody:(NSData *)data using the value returned by UIImagePNGRepresentation or UIImageJPEGRepresentation. See Apple's documentation of the NSMutableURLRequest class for more information.

GregInYEG
That's what I thought too, but it doesn't seem to work. The web service expects to receive the image data in base64Binary format. Is that correct?
dbarrett