0

我想从 URL 中获取图像:

http://imgur.com/gallery/ihHQvP1

然后将其转换为 NSData 以便我能够将其解析到服务器。服务器只接受 NSData 而不是图像链接。我从相机中得到以下信息:

 NSData *pictureData = UIImagePNGRepresentation([self scaleImage:activityImageView.image toSize:CGSizeMake(230, 230)]);

然后将其放入 JSON 格式发送到服务器:

jsonPostBody= [NSString stringWithFormat:@"{\"activity_id\":\"%@\",\"user_id\":\"%@\",\"activity_title\":\"%@\",\"activity_category_id\":\"%@\",\"activity_description\":\"%@\",\"activity_image\":\"%@\",\"activity_begindate\":\"%@\",\"activity_enddate\":\"%@\", \"activity_time\":\"%@\", \"activity_email\":\"%@\",\"activity_city\":\"%@\",\"activity_where\":\"%@\",\"gotooffer_url\":\"%@\",\"latitude\":\"%@\",\"longitude\":\"%@\"}",[editActivityDict valueForKey:@"activity_id"],singletonObj.userID,title,selectedCategoryString,discription,[Base64 encode:pictureData],begindateConvert,enddateConvert,milatryTime,@"",city,where,entersite,singletonObj.singletonlatitude,singletonObj.singletonlogitude];
                    NSString *urlString=[NSString stringWithFormat:@"%@%@",ROOT_URL,EDIT_ACTIVITY];

如您所见,正文中发送的图片的变量是:

[Base64 encode:pictureData]

有任何想法吗?

4

1 回答 1

0

最简单的方法是用于+[NSData dataWithContentsOfURL:options:error:]获取通过对该 URL 执行 GET 请求作为NSData实例返回的数据。但是,这会执行同步Web 请求,不建议在主线程上执行,以免阻塞 UI。

为避免在主线程上同步获取,您可以使用 GCD 或操作队列将相同的代码放在后台线程中,但最安全的方法是使用NSURLConnection/ NSURLRequest,如本响应中所述。

于 2013-10-16T03:14:44.500 回答