zoukankan      html  css  js  c++  java
  • iOS开发-AFNetworking 怎样上传数据? 怎样上传模拟表单

    和取数据差不多的
    首先定义一个字典,用来存放参数

    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) {
    //失败回调
    
    } ];

    不用第三方,自己写

    一、发送JSON数据给服务器

    发送JSON数据给服务器的步骤:

    (1)一定要使用POST请求

    (2)设置请求头

    (3)设置JSON数据为请求体

    代码示例:

    复制代码
     1 #import "YYViewController.h"
     2 
     3 @interface YYViewController ()
     4 
     5 @end
     6 
     7 @implementation YYViewController
     8 
     9 - (void)viewDidLoad
    10 {
    11     [super viewDidLoad];
    12 }
    13 
    14 - (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event
    15 {
    16     // 1.创建请求
    17     NSURL *url = [NSURL URLWithString:@"http://192.168.1.200:8080/MJServer/order"];
    18     NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:url];
    19     request.HTTPMethod = @"POST";
    20     
    21     // 2.设置请求头
    22     [request setValue:@"application/json" forHTTPHeaderField:@"Content-Type"];
    23     
    24     // 3.设置请求体
    25     NSDictionary *json = @{
    26                            @"order_id" : @"123",
    27                            @"user_id" : @"789",
    28                            @"shop" : @"Toll"
    29                            };
    30     
    31 //    NSData --> NSDictionary
    32     // NSDictionary --> NSData
    33     NSData *data = [NSJSONSerialization dataWithJSONObject:json options:NSJSONWritingPrettyPrinted error:nil];
    34     request.HTTPBody = data;
    35     
    36     // 4.发送请求
    37     [NSURLConnection sendAsynchronousRequest:request queue:[NSOperationQueue mainQueue] completionHandler:^(NSURLResponse *response, NSData *data, NSError *connectionError) {
    38         NSLog(@"%d", data.length);
    39     }];
    40 }
    41 
    42 @end
    复制代码

    二、多值参数

    多值参数:一个参数对应多个值。

    如下面的请求参数:

    http://192.168.1.103:8080/MJServer/weather?place=北京&place=河南&place=湖南

    服务器的place属性是一个数组。因此用同一个参数不会把服务器的值覆盖。

  • 相关阅读:
    Period 计算日期之间的时间差遇到的问题
    Spring cloud jenkins 使用问题笔记jenkins publish over ssh (Exec exit status not zero. Status)
    Linux中scp命令获取远程文件的方法
    HTML5+CSS3从入门到精通 pdf下载
    Oracle RMAN-08137报错处理
    SQL中如何使用EXISTS替代IN
    你撸代码时,会戴耳机吗?
    MySQL必知必会 pdf下载
    SqlServer的sa账号被锁定
    windows系统如何查看端口被占用、杀进程
  • 原文地址:https://www.cnblogs.com/dingjianjaja/p/5015062.html
Copyright © 2011-2022 走看看