AFNetworking3.0通过Body请求数据

2017-05-31  本文已影响1680人  谁在弹奏一曲东风破

【Warming】:AFNetworking 奇葩问题旨在针对奇葩问题提出奇葩的解法,部分验证并在实际中用到,但不保证有隐性问题。

之前都是通过键值对的形式进行网络请求,接口那边在新项目中对POST/PUT/DELETE突然用到了加密后的text/plain格式的raw数据形式,是一种新的挑战。先后尝试了两种方法。最后抛弃了第一种,不知道具体原因,此种方法对DELETE方法失效,可能我对HTTP请求挖的不够深,也可能是没有细看AFHTTPSesstionManger类理解不够透彻,但第二种对所有的请求都有效。就没细究这个问题了。

先展示一下两种方法共同的部分

+ (instancetype)sharedPostAndPutClient{
    static SPNetworkClient * client = nil;
    static dispatch_once_t onceToken;
    dispatch_once(&onceToken, ^{
      client = [[SPNetworkClient alloc] initWithBaseURL:[NSURL URLWithString:baseUrl]];
      [AFNetworkActivityIndicatorManager sharedManager].enabled = YES;
      client.securityPolicy = [AFSecurityPolicy policyWithPinningMode:AFSSLPinningModeNone];
      client.requestSerializer.timeoutInterval = 10;
      client.responseSerializer = [AFJSONResponseSerializer serializer];
      [client.requestSerializer setValue:@"text/plain" forHTTPHeaderField:@"Content-Type"];
  });
  return client;
}
上一篇 下一篇

猜你喜欢

热点阅读