IOS博客项目搭建-17-发微博-发一张图片
2016-05-28 00:00
344 查看
前面我们完成了可以发布一条纯文字的微博,现在来通过从相册中获取到的图片,然后发一个带有图片的微博。
关于发送微博的接口,可以查询新浪的开放平台微博API接口文档,我们找到上传图片并发布一条新微博的接口,https://upload.api.weibo.com/2/statuses/upload.json
###请求参数
![](https://static.oschina.net/uploads/img/201605/28001211_dWTF.png)
###文件上传的参数pic不能和普通的字符串参数混在一起,需要用不同的方法分开处理。
旧的将文件和普通参数写在一起的方法(经测试,该方法不能发送图片)
将文件和普通参数分开写的方法
OK, 发送带有一张图片的微博完美实现^_^
关于发送微博的接口,可以查询新浪的开放平台微博API接口文档,我们找到上传图片并发布一条新微博的接口,https://upload.api.weibo.com/2/statuses/upload.json
###请求参数
![](https://static.oschina.net/uploads/img/201605/28001211_dWTF.png)
###文件上传的参数pic不能和普通的字符串参数混在一起,需要用不同的方法分开处理。
旧的将文件和普通参数写在一起的方法(经测试,该方法不能发送图片)
// 2.封装请求参数 NSMutableDictionary *params = [NSMutableDictionary dictionary]; // 发送内容 params[@"status"] = self.textView.text; // 根据之前封装的账号工具类IWAccountTool,登陆授权的账号信息被保存在本地,然后通过账号属性获取access_token params[@"access_token"] = [IWAccountTool account].access_token; // 上传图片(是否压缩,压缩质量为0.6,原图为1.0) params[@"pic"] = UIImageJPEGRepresentation(self.imageView.image, 0.6); // 3.发送请求 [mgr POST:@"https://upload.api.weibo.com/2/statuses/upload.json" parameters:params success:^(AFHTTPRequestOperation *operation, id responseObject) { [MBProgressHUD showSuccess:@"恭喜,发送成功"]; } failure:^(AFHTTPRequestOperation *operation, NSError *error) { // 隐藏提醒框 [MBProgressHUD showError:@"抱歉,发送失败"]; }];
将文件和普通参数分开写的方法
/** * 发有图片微博 */ - (void)sendWithImage { // AFNetworking\AFN // 1.创建请求管理对象 AFHTTPRequestOperationManager *mgr = [AFHTTPRequestOperationManager manager]; // 2.封装请求参数 NSMutableDictionary *params = [NSMutableDictionary dictionary]; // 发送内容 params[@"status"] = self.textView.text; // 根据之前封装的账号工具类IWAccountTool,登陆授权的账号信息被保存在本地,然后通过账号属性获取access_token params[@"access_token"] = [IWAccountTool account].access_token; // 上传图片(是否压缩,压缩质量为0.6,原图为1.0) // params[@"pic"] = UIImageJPEGRepresentation(self.imageView.image, 0.6); // 3.发送请求 /* [mgr POST:@"https://upload.api.weibo.com/2/statuses/upload.json" parameters:params success:^(AFHTTPRequestOperation *operation, id responseObject) { [MBProgressHUD showSuccess:@"恭喜,发送成功"]; } failure:^(AFHTTPRequestOperation *operation, NSError *error) { // 隐藏提醒框 [MBProgressHUD showError:@"抱歉,发送失败"]; }]; */ [mgr POST:@"https://upload.api.weibo.com/2/statuses/upload.json" parameters:params constructingBodyWithBlock:^(id<AFMultipartFormData> formData) { // 在发送请求之前调用这个block //必须在这里说明需要上传哪些文件 NSData *data = UIImageJPEGRepresentation(self.imageView.image, 0.6); [formData appendPartWithFileData:data name:@"pic" fileName:@"text.jpg" mimeType:@"image/jpeg"]; } success:^(AFHTTPRequestOperation *operation, id responseObject) { [MBProgressHUD showSuccess:@"恭喜,发送成功"]; } failure:^(AFHTTPRequestOperation *operation, NSError *error) { // 隐藏提醒框 [MBProgressHUD showError:@"抱歉,发送失败"]; }]; // 4.关闭控制器。当用户点击发送微博按钮后,需要将发微博界面关掉,因为发微博有时可能需要很长时间 [self dismissViewControllerAnimated:YES completion:nil]; }
OK, 发送带有一张图片的微博完美实现^_^
![](https://static.oschina.net/uploads/img/201605/28004359_XIww.gif)
相关文章推荐
- 峰回路转,Firefox 浏览器即将重返 iOS 平台
- 峰回路转,Firefox 浏览器即将重返 iOS 平台
- 不可修补的 iOS 漏洞可能导致 iPhone 4s 到 iPhone X 永久越狱
- iOS 12.4 系统遭黑客破解,漏洞危及数百万用户
- 每日安全资讯:NSO,一家专业入侵 iPhone 的神秘公司
- [转][源代码]Comex公布JailbreakMe 3.0源代码
- 讲解iOS开发中基本的定位功能实现
- iOS中定位当前位置坐标及转换为火星坐标的方法
- js判断客户端是iOS还是Android等移动终端的方法
- iOS应用开发中AFNetworking库的常用HTTP操作方法小结
- iOS应用中UISearchDisplayController搜索效果的用法
- IOS开发环境windows化攻略
- iOS应用中UITableView左滑自定义选项及批量删除的实现
- iOS中UIAlertView警告框组件的使用教程
- 浅析iOS应用开发中线程间的通信与线程安全问题
- 检测iOS设备是否越狱的方法
- .net平台推送ios消息的实现方法
- 探讨Android与iOS,我们将何去何从?
- Android、iOS和Windows Phone中的推送技术详解