afn设置请求头、token、打印请求头


@property(nonatomic,strong) AFHTTPSessionManager *session;

-(instancetype)init
{
    if (self = [super init]) {
        _session= [AFHTTPSessionManager manager];
        
        //有json 也有x-www-form-urlencoded
        //添加返回数据的类型支持
        _session.responseSerializer = [AFJSONResponseSerializer serializer];
        // 设置超时时间
        _session.requestSerializer.timeoutInterval = 11.0f;
        [_session.requestSerializer didChangeValueForKey:@"timeoutInterval"];
        [_session.requestSerializer setValue:@"application/x-www-form-urlencoded" forHTTPHeaderField:@"Content-Type"];
//注意如果是json格式            [_session.requestSerializer setValue:@"application/json" forHTTPHeaderField:@"Content-Type"];


        _session.responseSerializer.acceptableContentTypes = [NSSet setWithObjects:@"text/plain", @"multipart/form-data", @"application/json", @"text/html", @"image/jpeg", @"image/png", @"application/octet-stream", @"text/json",@"text/javascript",@"text/plain", nil];
        [_session.requestSerializer didChangeValueForKey:@"timeoutInterval"];
        
        NSString *tokenStr = [[NSUserDefaults standardUserDefaults] objectForKey:@"token"];
    
//设置token
        if (tokenStr != nil) {
            NSString *appendTokenStr = [NSString stringWithFormat:@"token=%@",tokenStr];
            [ _session.requestSerializer setValue:appendTokenStr forHTTPHeaderField:@"Cookie"];
        }
    }
    return self;
}



如果服务器请求参数格式有多种,比如"application/json"、"application/x-www-form-urlencoded" “raw”//raw按照json处理即可,可以设置个枚举,在请求的时候传递参数格式

typedef NS_ENUM(NSInteger, AFNRequestType) {

    //请求数据格式为json

    AFNRequestTypeJson,

    //请求数据格式为application/x-www-form-urlencoded

    AFNRequestTypeForm,
};

@property (assign, nonatomic) AFNRequestType type;


//.m
-(void)postWithUrl:(NSString *)Url  Dict:(NSDictionary *)dict requestType:(AFNRequestType )requestType SuccessBlock:(SuccessBlock)successBlock FaileBlock:(FailBlock)failBlock{

    switch (requestType) {
        case AFNRequestTypeJson:
            [[AFN Manager].session.requestSerializer setValue:@"application/json" forHTTPHeaderField:@"Content-Type"];
            break;
            
        case AFNRequestTypeForm:
            [[AFN Manager].session.requestSerializer setValue:@"application/x-www-form-urlencoded" forHTTPHeaderField:@"Content-Type"];
            break;
        default:
            break;
    }
    
}

 

 // 请求方式

        NSLog(@"请求方式:%@\n 请求URL:%@\n",task.originalRequest.HTTPMethod,Url)

            //打印  请求头信息

        NSLog(@"请求头信息:%@\n",task.originalRequest.allHTTPHeaderFields);

[_session POST:Url parameters:dict headers:nil progress:^(NSProgress * _Nonnull uploadProgress) {
        
    } success:^(NSURLSessionDataTask * _Nonnull task, id  _Nullable responseObject) {
        id responseObj = responseObject;
    
      
        // 请求方式
        NSLog(@"请求方式:%@\n 请求URL:%@\n",task.originalRequest.HTTPMethod,Url);
            
            // 请求头信息
        NSLog(@"请求头信息:%@\n",task.originalRequest.allHTTPHeaderFields);
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值