我知道这个问题已被问过几次,但我无法找到最适合我情况的确定答案。
我希望能够让用户从库中选择一个图像,然后将该图像转换为NSData类型。然后,我要求通过HTTP调用.NET C#webservice,理想情况下我需要将结果字符串转换为UTF8。
这是我到目前为止所做的:
NSData *dataObj = UIImageJPEGRepresentation(selectedImage, 1.0);
[picker dismissModalViewControllerAnimated:YES];
NSString *content = [[NSString alloc] initWithData:dataObj encoding:NSUTF8StringEncoding];
NSLog(@"%@", content);
NSLog语句只生成输出:
2009-11-29 14:13:33.937 TestUpload2[5735:207] (null)
显然这不是我希望实现的,所以任何帮助都会很棒。
亲切的问候
答案 0 :(得分:2)
您不能仅使用任何二进制数据创建UTF-8编码的字符串 - 数据实际上需要UTF-8编码,而JPEG图像的数据显然不是。您的二进制数据不代表字符串,因此您无法直接从中创建字符串 - -[NSString initWithData:encoding:]
在您的情况下适当地失败。
假设您正在使用NSURLConnection(尽管其他方法也应该使用类似的语句),您将构造NSMutableURLRequest并使用您需要传递NSData对象的-setHTTPBody:
。我不明白为什么你会在这里使用GET方法,因为它听起来你将把这个图像数据上传到你的web服务 - 你应该使用POST。