我知道这个问题已被问过几次,但我无法找到最适合我情况的确定答案。

我希望能够让用户从库中选择一个图像,然后将该图像转换为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)

显然这不是我希望实现的,所以任何帮助都会很棒。

亲切的问候

有帮助吗?

解决方案

您不能仅使用任何二进制数据创建UTF-8编码的字符串 - 数据实际上需要UTF-8编码,而JPEG图像的数据显然不是。您的二进制数据不代表字符串,因此您无法直接从中创建字符串 - - [NSString initWithData:encoding:] 在您的情况下会失败。

假设您正在使用NSURLConnection(尽管其他方法也应该使用类似的语句),您将构建NSMutableURLRequest并使用 -setHTTPBody:,您需要将NSData对象传递给它。我不明白为什么你会在这里使用GET方法,因为它听起来你将把这个图像数据上传到你的web服务 - 你应该使用POST。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top