AFNetworking(get)请求数据,(post)上传图片
2014-04-02 20:35
531 查看
-(void)testGet:(UIButton*)b
{
/* Request操作管理器单例得使用 */
AFHTTPRequestOperationManager * manager = [AFHTTPRequestOperationManagermanager];
//设置返回值类型,默认类型为Json
manager.responseSerializer= [AFJSONResponseSerializerserializerWithReadingOptions:NSJSONReadingAllowFragments];
/** 开始请求数据, GET,请求URL parameters,请求参数 ,返回值, AFHTTPRequestOperation,请求操作对象 */
AFHTTPRequestOperation * o1 = [managerGET:@"https://api.weibo.com/2/statuses/public_timeline.json"parameters:@{@"access_token":@"2.00evHF2Cm9O2FC6cabf489d8zODP6E",@"count":@200}success:^(AFHTTPRequestOperation
*operation,id responseObject) {
NSLog(@"%@",responseObject);
} failure:^(AFHTTPRequestOperation *operation,NSError *error) {
}];
//设置请求出错时的警告框
[UIAlertViewshowAlertViewForRequestOperationWithErrorOnCompletion:o1
delegate:self];
//为o1操作单独设置状态栏中的小菊花
// [[[UIActivityIndicatorView alloc]init]setAnimatingWithStateOfOperation:o1];
/** 为所有AFNetWorking发送的请求设置小菊花. */
[[AFNetworkActivityIndicatorManagersharedManager]setEnabled:YES];
[o1 setDownloadProgressBlock:^(NSUInteger bytesRead,long
long totalBytesRead, long
long totalBytesExpectedToRead) {
//bytesRead,上次读取的数据 //totalBytesRead,目前为止总共读取的数据 //totalBytesExpectedToRead,预测的文件大小
}];
/** 设置下载进度条 */
UIProgressView * progressV1 = [[UIProgressViewalloc]initWithProgressViewStyle:UIProgressViewStyleBar];
[progressV1 setFrame:CGRectMake(0,80,
320, 30)];
[self.view
addSubview:progressV1];
//将o1操作的进度交由progressV展示
[progressV1 setProgressWithDownloadProgressOfOperation:o1animated:YES];
-(void)testPost:(UIButton*)b
{
/*文件上传示例 */
//设置接收响应类型为标准HTTP类型(默认为响应类型为JSON)
AFHTTPRequestOperationManager * manager = [AFHTTPRequestOperationManagermanager];
manager.responseSerializer = [AFHTTPResponseSerializerserializer];
AFHTTPRequestOperation * o2= [manager
POST:@"http://wunantest.sinaapp.com/filetest.php" parameters:nil constructingBodyWithBlock:^(id<AFMultipartFormData>
formData) {
NSData * data=UIImagePNGRepresentation([UIImageimageNamed:@"icon.png"]);
//将得到的二进制图片拼接到表单中 /** data,指定上传的二进制流;name,服务器端所需参数名;fileName,指定文件名;mimeType,指定文件格式 */
[formData appendPartWithFileData:dataname:@"file"fileName:@"111icon.png"mimeType:@"image/png"];
//多用途互联网邮件扩展(MIME,Multipurpose Internet Mail Extensions)
}success:^(AFHTTPRequestOperation *operation,id responseObject){
NSLog(@"%@",[[NSStringalloc]initWithData:responseObjectencoding:NSUTF8StringEncoding]);
}failure:^(AFHTTPRequestOperation *operation,NSError *error) {
}];
//设置上传操作的进度
[o2 setUploadProgressBlock:^(NSUInteger bytesWritten,long
long totalBytesWritten, long
long totalBytesExpectedToWrite) {
}];
UIProgressView * progressV2 = [[UIProgressViewalloc]initWithProgressViewStyle:UIProgressViewStyleDefault];
[progressV2 setProgressWithUploadProgressOfOperation:o2animated:YES];
[progressV2 setFrame:CGRectMake(0,130,
320, 30)];
[self.view
addSubview:progressV2];
}
demo:http://share.weiyun.com/b448045e8d135891f3b092dcb47bc45d
{
/* Request操作管理器单例得使用 */
AFHTTPRequestOperationManager * manager = [AFHTTPRequestOperationManagermanager];
//设置返回值类型,默认类型为Json
manager.responseSerializer= [AFJSONResponseSerializerserializerWithReadingOptions:NSJSONReadingAllowFragments];
/** 开始请求数据, GET,请求URL parameters,请求参数 ,返回值, AFHTTPRequestOperation,请求操作对象 */
AFHTTPRequestOperation * o1 = [managerGET:@"https://api.weibo.com/2/statuses/public_timeline.json"parameters:@{@"access_token":@"2.00evHF2Cm9O2FC6cabf489d8zODP6E",@"count":@200}success:^(AFHTTPRequestOperation
*operation,id responseObject) {
NSLog(@"%@",responseObject);
} failure:^(AFHTTPRequestOperation *operation,NSError *error) {
}];
//设置请求出错时的警告框
[UIAlertViewshowAlertViewForRequestOperationWithErrorOnCompletion:o1
delegate:self];
//为o1操作单独设置状态栏中的小菊花
// [[[UIActivityIndicatorView alloc]init]setAnimatingWithStateOfOperation:o1];
/** 为所有AFNetWorking发送的请求设置小菊花. */
[[AFNetworkActivityIndicatorManagersharedManager]setEnabled:YES];
[o1 setDownloadProgressBlock:^(NSUInteger bytesRead,long
long totalBytesRead, long
long totalBytesExpectedToRead) {
//bytesRead,上次读取的数据 //totalBytesRead,目前为止总共读取的数据 //totalBytesExpectedToRead,预测的文件大小
}];
/** 设置下载进度条 */
UIProgressView * progressV1 = [[UIProgressViewalloc]initWithProgressViewStyle:UIProgressViewStyleBar];
[progressV1 setFrame:CGRectMake(0,80,
320, 30)];
[self.view
addSubview:progressV1];
//将o1操作的进度交由progressV展示
[progressV1 setProgressWithDownloadProgressOfOperation:o1animated:YES];
-(void)testPost:(UIButton*)b
{
/*文件上传示例 */
//设置接收响应类型为标准HTTP类型(默认为响应类型为JSON)
AFHTTPRequestOperationManager * manager = [AFHTTPRequestOperationManagermanager];
manager.responseSerializer = [AFHTTPResponseSerializerserializer];
AFHTTPRequestOperation * o2= [manager
POST:@"http://wunantest.sinaapp.com/filetest.php" parameters:nil constructingBodyWithBlock:^(id<AFMultipartFormData>
formData) {
NSData * data=UIImagePNGRepresentation([UIImageimageNamed:@"icon.png"]);
//将得到的二进制图片拼接到表单中 /** data,指定上传的二进制流;name,服务器端所需参数名;fileName,指定文件名;mimeType,指定文件格式 */
[formData appendPartWithFileData:dataname:@"file"fileName:@"111icon.png"mimeType:@"image/png"];
//多用途互联网邮件扩展(MIME,Multipurpose Internet Mail Extensions)
}success:^(AFHTTPRequestOperation *operation,id responseObject){
NSLog(@"%@",[[NSStringalloc]initWithData:responseObjectencoding:NSUTF8StringEncoding]);
}failure:^(AFHTTPRequestOperation *operation,NSError *error) {
}];
//设置上传操作的进度
[o2 setUploadProgressBlock:^(NSUInteger bytesWritten,long
long totalBytesWritten, long
long totalBytesExpectedToWrite) {
}];
UIProgressView * progressV2 = [[UIProgressViewalloc]initWithProgressViewStyle:UIProgressViewStyleDefault];
[progressV2 setProgressWithUploadProgressOfOperation:o2animated:YES];
[progressV2 setFrame:CGRectMake(0,130,
320, 30)];
[self.view
addSubview:progressV2];
}
demo:http://share.weiyun.com/b448045e8d135891f3b092dcb47bc45d
相关文章推荐
- AFNetworking(get)请求数据,(post)上传图片
- AFNetworking(get)请求数据,(post)上传图片
- iOS基础8:自定义MyData/自定义SQLite用于网络判断,版本判断,图片缓存处理,下载或者上传的GET或POST请求,加密手段,.数据解析
- Get、Post(HTTP中最常用的请求方式 使用ASIHTTPRequest)----例如:登录、上传图片(调用手机相册 UIImage 转为data)
- AFNetWorking的两个使用场景(请求网络数据、图片上传)
- Volley请求HTTPS,及其实现post,delete,get,put,上传下载图片。demo
- 使用okhttp进行图片下载,上传,get,post网络请求
- Android 发送Post请求上传图片(以InputStream为数据交互)
- AFNetworking框架的基本使用——GET、POST登录 、设置请求与响应的数据格式
- Swift3.0 Alamofire网络请求的封装(get,post,upload图片上传)
- AFNetWorking的简单封装 图片音频 视频下载 上传 请求数据
- 用AFNetworking请求的时候GET正常,而POST时后台缺收不到数据,最坑的就是安卓还是正常的
- AFNetworking网络请求-数据请求(POST/GET)
- # C++网络请求(get,post,上传图片)与QML混合编程
- Swift3.0 Alamofire 网络请求的封装--->get,post,upload图片上传
- AFNetWorking之GET,POST,上传图片,下载文件进度监测
- AFNetWorking的get与post用法以及进行图片上传
- Android 网络请求框架,包涵get,post请求,from表单上传图片,基于okhtt封装的图片上传
- AFNetworking网络请求与图片上传工具(POST)
- ReactNative fetch网络请求封装(GET,POST,图片上传)