1.新建一个single view工程,导入ASIHttpRequest库,导入MobileCoreServices、CFNetwork、SystemConfiguration和libz1.2.5.dylib四个系统库

2.随便导入一张图片,比如haoyou.png

3.ViewController.h

1
2
3
4
5
6
#import <uikit uikit.h="">
#import "ASIHTTPRequest.h"
#import "ASIFormDataRequest.h"
@interface ViewController : UIViewController
@property (nonatomic, copy)NSString *m_auth;
@end</asihttprequestdelegate></uikit>

4.ViewController.m 添加两个按钮

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
- (void)viewDidLoad {
    [super viewDidLoad];
     
    UIButton *loginBtn = [UIButton buttonWithType:UIButtonTypeRoundedRect];
    loginBtn.frame = CGRectMake(100, 20, 120, 40);
    [loginBtn setTitle:@"登录" forState:UIControlStateNormal];
    [loginBtn addTarget:self action:@selector(login) forControlEvents:UIControlEventTouchUpInside];
    [self.view addSubview:loginBtn];
     
    UIButton *uploadBtn = [UIButton buttonWithType:UIButtonTypeRoundedRect];
    uploadBtn.frame = CGRectMake(100, 80, 120, 40);
    [uploadBtn setTitle:@"上传" forState:UIControlStateNormal];
    [uploadBtn   addTarget:self action:@selector(upload) forControlEvents:UIControlEventTouchUpInside];
    [self.view addSubview:uploadBtn];
}

5.实现login和upload两个方法

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
- (void)login {
    NSURL *url = [NSURL URLWithString:@"..."];//此处省略请求url
    //请求
    ASIHTTPRequest *request = [ASIHTTPRequest requestWithURL:url];
    request.tag = 10;
    request.delegate = self;
    [request startAsynchronous];
}
 
- (void)upload {
    NSURL* url = [NSURL URLWithString:@"..."];//此处省略请求url
    UIImage* img = [UIImage imageNamed:@"haoyou.png"];
    NSData* data = UIImagePNGRepresentation(img);
    //ASIFormDataRequest请求是post请求,可以查看其源码
    ASIFormDataRequest* request = [ASIFormDataRequest requestWithURL:url];
    request.tag = 20;
    request.delegate = self;
    [request setPostValue:self.m_auth forKey:@"m_auth"];
//    [request setFile:@"tabbar.png" forKey:@"haoyou"];//如果有路径,上传文件
    [request setData:data  withFileName:@"tmp.png" andContentType:@"image/png" forKey:@"headimage"];
//               数据                文件名,随便起                 文件类型            设置key
    [request startAsynchronous];
}

6.实现协议

1
2
3
4
5
6
7
8
9
10
11
12
13
14
- (void)requestFailed:(ASIHTTPRequest *)request {
    NSLog(@"请求失败");
}
 
- (void)requestFinished:(ASIHTTPRequest *)request {
    if (request.tag == 10) {
        NSDictionary * dic = [NSJSONSerialization JSONObjectWithData:request.responseData options:0 error:nil];
        self.m_auth = [dic objectForKey:@"m_auth"];
        NSLog(@"%@", self.m_auth);
    }
    if (request.tag == 20) {
        NSLog(@"%@", request.responseString);
    }
}

iOS用ASIHttpRequest上传的更多相关文章

  1. 【iOS 使用github上传代码】详解

    [iOS 使用github上传代码]详解 一.github创建新工程 二.直接添加文件 三.通过https 和 SSH 操作两种方式上传工程 3.1https 和 SSH 的区别: 3.1.1.前者可 ...

  2. iOS上架ipa上传问题那些事

    iOS上架ipa上传问题那些事 原文: http://www.jianshu.com/p/1e22543285c2 字数513 阅读312 评论0 喜欢1 通过xcode直接打包上传,不会提示你的ip ...

  3. iOS多图上传

    iOS多图上传涉及到多线程问题,个人比较喜欢使用GCD操作,下边是最近写的一个多图上传代码,附带相关注释 __block BOOL allSucc = YES; __block int m = 0; ...

  4. iOS自动化打包上传的踩坑记

    http://www.cocoachina.com/ios/20160624/16811.html 很久以前就看了很多关于iOS自动打包ipa的文章, 看着感觉很简单, 但是因为一直没有AppleDe ...

  5. IOS开发-图片上传

    目前IOS端开发,图片上传到服务器分为两种,一种是直接上到服务器,一种是借助第三方储存(减少服务器压力). 一.直接上传到服务器 /** * 代码演示 */ //*******UIImagePNGRe ...

  6. iOS 七牛云上传并获取图片----【客户端】

           最近做了七牛云存储的有关内容,涉及到与后台交互获取验证的token,无奈,后台自命清高,不与理会,没办法呀,于是自己搞呗.首先呢在在七牛上注册一个账号,然后呢添加一个存储空间这时候空间名 ...

  7. 【iOS】文件上传小记

    iOS由该系统提供API可以实现可以实现文件的上传和下载,有两种方法来. NSURLConnection与NSURLSession. 当中NSURLConnection是使用非常久的的一种方式.NSU ...

  8. iOS学习——Xcode9上传项目到GitHub

    最近通过视频在学习一个完整项目的开发流程和思路,为了更真实地模拟在实际开发中的流程,我们需要将项目的代码以及一些资料进行版本控制和管理,一般比较常用的SVN或者Github进行代码版本控制和项目管理. ...

  9. Windows环境下IOS APP打包上传AppStore详细流程

    我们知道在上架苹果应用过程中,申请发布证书需要用到钥匙串,上传ipa需要用到xcode或Application loader提交构建版本,这都需要Mac苹果机. 本文介绍如何在Windows环境下申请 ...

随机推荐

  1. iOS10 app连接不上网络的问题

    http://jingyan.baidu.com/article/29697b917f2069ab20de3c33.html

  2. fiddler note

    一晚上终于找到对的东西,作者很专业,这里作为笔记,想学习好东西还是到作者那里^_^ ---------------------------------------------------------- ...

  3. NRF905 无线模块实验

    ---恢复内容开始--- 采用2440开发板,CON4 不仅包含了很多富余的 GPIO 引脚,还包含了一些其他 CPU 引脚, 如 AD0-AIN3, CLKOUT 等.你所看到的图中的 SPI 接口 ...

  4. poi jar包的作用

    目前POI的最新发布版本是3.10_FINAL.该版本保护的jar包有: Maven artifactId Prerequisites JAR poi commons-logging, commons ...

  5. Android -- 自定义View小Demo,绘制四位数随机码(一)

    1,现在有这样一个需求,实现显示随机随机数可能在代码中直接很简单的就实现了,但是现在我们直接自定义View来实现这个效果,那么我们来分析一波吧,我们允许开发者自己设置这个textview的大小,颜色, ...

  6. ExtJs Panel 滚动条设置

    设置autoscroll:true同时出现横向和纵向滚动条. 不要设置autoscroll属性,或者autoscroll:false,然后设置bodyStyle : 'overflow-x:hidde ...

  7. python入门练习题1

    常见python入门练习题 1.执行python脚本的两种方法 第一种:给python脚本一个可执行的权限,进入到当前存放python程序的目录,给一个x可执行权限,如:有一个homework.py文 ...

  8. Hadoop之为何不使用RAID?

    一.引言: 在一次和同事的讨论中遇到一个这样的问题:有一个hadoop集群,在hbase的put数据出现瓶颈,他们想要把datanode上的磁盘做成RAID 0(比如10块磁盘做成一个RAID 0), ...

  9. LR HTML与URL录制方式区别

    Recording录制选项 这里提供了两个大类的录制方式: 1. HTML-based script基于HTML的脚本 这种方式录制出来的脚本是基于HTML基础的,为每个用户操作生成单独的步骤,这种脚 ...

  10. zoj 3673 1729

    1729 Time Limit: 3 Seconds      Memory Limit: 65536 KB 1729 is the natural number following 1728 and ...