我想从网址中获取图片:
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]
任何想法?
答案 0 :(得分:0)
最简单的方法是使用+[NSData dataWithContentsOfURL:options:error:]
来获取通过对该URL执行GET请求作为NSData
实例返回的数据。但是,这会执行同步 Web请求,建议不要在主线程上执行该请求以避免阻止UI。
为了避免主线程上的同步提取,您可以使用GCD或操作队列将相同的代码放在后台线程中,但最安全的方法是使用NSURLConnection
/ NSURLRequest
,如上所述在this response。