AFNがリクエストヘッダヘッダとbodyを追加する方法
1902 ワード
今日ブログを更新して、前に多くの友达が私にAFNetworking 3.0が古い方法を舍てたことを闻いて、3.0はどのように“header”と请求体“body”を追加して、申し訳ありませんが、この間ずっととても忙しい状态で、今日やっと暇を見つけてブログを更新して、みんなに役に立つことを望みます.
1、まず、AFNはarcの下で使用するので、arc以外は-objc-arc 2を追加し、次に、対応するライブラリ:CoreLocationをインポートする必要がある.framework SystemConfiguration.framework MobileCoreServices.framework Security.framework 3、実はAFNリクエストもNSURLRequestを継承しているので、リクエストコードは以下のように、詳しく説明せずに直接コードを貼ります.
一、3.0以前のバージョン
1、まず、AFNはarcの下で使用するので、arc以外は-objc-arc 2を追加し、次に、対応するライブラリ:CoreLocationをインポートする必要がある.framework SystemConfiguration.framework MobileCoreServices.framework Security.framework 3、実はAFNリクエストもNSURLRequestを継承しているので、リクエストコードは以下のように、詳しく説明せずに直接コードを貼ります.
NSMutableURLRequest *request = [[NSMutableURLRequest alloc] initWithURL:[NSURL URLWithString:url]];
[request setHTTPMethod:@"POST"];
[request setHTTPBody:XXX];
[request setValue:@"XXX" forHTTPHeaderField:@"nop"];
AFHTTPRequestOperation *op = [[AFHTTPRequestOperation alloc] initWithRequest:request];
[op setCompletionBlockWithSuccess:^(AFHTTPRequestOperation * _Nonnull operation, id _Nonnull responseObject) {
NSLog(@"%@", responseObject);
} failure:^(AFHTTPRequestOperation * _Nonnull operation, NSError * _Nonnull error) {
NSLog(@"%@",error);
}];
[op start];
バージョン2、3.0(更新)
AFHTTPSessionManager *manger = [AFHTTPSessionManager manager];
AFHTTPRequestSerializer *requestSerializer = [AFJSONRequestSerializer serializer];
NSDictionary *headerFieldValueDictionary = @{@"version":@"1.0"};
if (headerFieldValueDictionary != nil) {
for (NSString *httpHeaderField in headerFieldValueDictionary.allKeys) {
NSString *value = headerFieldValueDictionary[httpHeaderField];
[requestSerializer setValue:value forHTTPHeaderField:httpHeaderField];
}
}
manger.requestSerializer = requestSerializer;
[manger GET:@"url" parameters:nil progress:nil success:^(NSURLSessionDataTask * _Nonnull task, id _Nullable responseObject) {
} failure:^(NSURLSessionDataTask * _Nullable task, NSError * _Nonnull error) {
}];