0

我知道这个问题已经被问过好几次了,但我找不到最适合我情况的明确答案。

我希望能够让用户从库中选择图像,然后将该图像转换为 NSData 类型。然后,我需要通过 HTTP get 调用 .NET C# Web 服务,因此理想情况下,我需要将生成的字符串进行 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)

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

亲切的问候

4

1 回答 1

2

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

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

于 2009-11-29T16:01:50.073 回答