iOS开发之AFNetworking上传

来源:互联网 发布:互联网数据开发是什么 编辑:程序博客网 时间:2024/04/30 08:58

AFNetworking作为一个网络交互的三方库,它的功能非常丰富,除了我们常用的数据请求外,我们在网络上传的时候也需要注意一下,因为上传的时候如果不是字符串,那么其他的所有东西都需要转化成NSData数据进行上传,下面介绍一下代码。

和取数据差不多的

首先定义一个字典,用来存放参数

NSDictionary* params = [NSDictionary dictionary];

params[@"属性"] = 值;

上传字段数据:

**

            //创建请求管理类

        AFHTTPRequestOperationManager* mgr = [AFHTTPRequestOperationManager manager];



        //发送请求

        [mgr POST:url parameters:params

          success:^(AFHTTPRequestOperation *operation, id responseObject) {


                //成功回调

        } failure:^(AFHTTPRequestOperation *operation, NSError *error) {


                //失败回调

      }];**

上传文件数据(事先将文件转化为二进制data):

//创建请求管理类

AFHTTPRequestOperationManager* mgr = [AFHTTPRequestOperationManager manager];



//发送请求

[mgr POST:url parameters:params constructingBodyWithBlock:^(id<AFMultipartFormData> totalformData) {



        [totalformData appendPartWithFileData:formData.data name:formData.name fileName:formData.fileName mimeType:formData.mimeType];



} success:^(AFHTTPRequestOperation *operation, id responseObject) {

    //成功回调


} failure:^(AFHTTPRequestOperation *operation, NSError *error) {

//失败回调


} ];



我们除了要主要上传之外,有些时候还要在请求中的header加入参数,这时候也可以用AFNetworking进行实现。

AFHTTPSessionManager *manager = [AFHTTPSessionManagermanager];


1.首先是创建manager.requestSerializer = [AFJSONRquestSerializer serializer];


2.设置参数

value             key

[manager.requestSerializersetValue:@"application/json"forHTTPHeaderField:@"Content-Type"];




设置长度



[manager.requestSerializer setValue:[NSString stringWithFormat:@"%ld", (unsigned long)[jsonStr length]] forHTTPHeaderField:@"Content-Length"];



设置请求编码类型


[manager.requestSerializer setValue:@"gzip" forHTTPHeaderField:@"Content-Encoding"];



本文有因为问题请联系

QQ:563699115

Telephone:18341266547


0 0
原创粉丝点击