AFNetWorking3.0.4的使用

 网络请求对于一个APP而已是很重要的,但是Xcode自带的网络请求即麻烦也难懂,从而AFNextWorking就显得很好用了。

网路请求POST

  以一个touchesBegan为例

parmeters里面填的是请求参数,也就是请求体(相比之下还是POST的请求方式比较安全,比较不容易被抓)

什么是请求体POST和GET都有请求头(str),而GET没有请求体平时看到的 (cityid=148&dist=0&limit=20&offset=0&sort=1)这种字符串其实就是请求体代表的就是字典

【 @"cityid":@"148",

         @"dist":@"0",

         @"limit":@"20",

         @"offset":@"0",

         @"sort":@"1"】

- (void)touchesBegan:(NSSet<UITouch *> *)touches withEvent:(UIEvent *)event

{

    NSString * str = @"http://api.qunachi.com/v5.2.0/Search/Shop/getShopList?appid=1&hash=8feef06577026d6fc9d0414fe106e062&deviceid=19529803756a8e22467e44494745638&channel=appstore";

    

       AFHTTPSessionManager * sessionManager = [AFHTTPSessionManager manager];

    sessionManager.responseSerializer.acceptableContentTypes = [NSSet setWithObject:@"application/json"/*服务器返回的数据类型*/];

    [sessionManager POST:str

              parameters:@

    {

         @"cityid":@"148",

         @"dist":@"0",

         @"limit":@"20",

         @"offset":@"0",

         @"sort":@"1"

              }

                progress:^(NSProgress * _Nonnull download)

     {

         NSLog(@"%lld", download.totalUnitCount);

     }

                 success:^(NSURLSessionDataTask * _Nonnull task,id _Nonnull response)

     {

         NSArray * arry = response;

     }

                 failure:^(NSURLSessionDataTask * _Nullable task, NSError * _Nonnull error)

     {

         NSLog(@"%@",error);

     }];

    

}

GET的请求和上面雷同,把parmeters里面填nil就行了。


你可能感兴趣的:(AFNetWorking3.0.4的使用)