gpt4 book ai didi

ios - AFNetworking 2 如何设置根据每个请求更新的 header

转载 作者:行者123 更新时间:2023-11-28 22:13:57 24 4
gpt4 key购买 nike

我正在尝试找出一种方法来更新为发送到我的 api 的每个请求生成的身份验证 token 。

我目前正在子类化 AFHTTPSessionManager

.h

@interface ZXHTTPSessionManager : ZXHTTPSessionManager

+ (ZXHTTPSessionManager *)sharedClient;

@end

.m

#import "ZXHTTPSessionManager.h"

@implementation ZXHTTPSessionManager


+ (ZXHTTPSessionManager *)sharedClient
{
static ZXHTTPSessionManager *_sharedClient = nil;
static dispatch_once_t onceToken;

dispatch_once(&onceToken, ^{
NSURL *baseURL = [NSURL URLWithString:APIBASEURL];

NSURLSessionConfiguration *config = [NSURLSessionConfiguration defaultSessionConfiguration];
[config setHTTPAdditionalHeaders:@{@"User-Agent": @"MY APP"}];

_sharedClient = [[ZXHTTPSessionManager alloc] initWithBaseURL:baseURL sessionConfiguration:config];
_sharedClient.responseSerializer = [AFJSONResponseSerializer serializer];
});

return _sharedClient;
}

- (void)setAuthToken:(NSString *)token
{
[[self requestSerializer] setValue:token forHTTPHeaderField:@"auth_token"];
}

@end

创建任务

NSURLSessionDataTask *task = [[ZXHTTPSessionManager sharedClient] GET:@"/post"
parameters:@{ @"id" : @"123"}
success:^(NSURLSessionDataTask *task, id responseObject) {

} failure:^(NSURLSessionDataTask *task, NSError *error) {

}];

最佳答案

目前未使用 AFHTTPSessionManager,但我确信它有些相似。在 AFHTTPClient 中,每个单独的请求都是通过以下方法发出的:

- (NSMutableURLRequest *)requestWithMethod:(NSString *)method
path:(NSString *)path
parameters:(NSDictionary *)parameters

你可以在这里修改它。或者更好的方法是使用以下方法传递从上述方法返回的 NSMutableURLRequest

- (AFHTTPRequestOperation *)HTTPRequestOperationWithRequest:(NSURLRequest *)urlRequest
success:(void (^)(AFHTTPRequestOperation *operation, id responseObject))success
failure:(void (^)(AFHTTPRequestOperation *operation, NSError *error))failure

您可以在您的子类中覆盖它并对 urlRequest header 进行必要的更改。请注意,此方法采用 NSURLRequest,因此需要创建请求的可变版本。

在对标题进行修改后调用 super。

关于ios - AFNetworking 2 如何设置根据每个请求更新的 header ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22240750/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com