AFNetworking - 使用序列化器

AFNetworking - Using Serializers

我正在尝试使用 Objective C 中的 AFNetworking 设置基本 API 请求。但是,我对 AFHTTPRequestSerializer 应该如何工作感到有点困惑。到目前为止,下面的代码似乎没有执行对我的 API 的请求,因为成功/错误 NSLog 语句中没有打印任何内容。我不认为我完全理解 AFHTTPRequestSerializer 是如何合并到 AFHTTPRequestOperationManager:

    NSString *URLString = @"http://mysite.dev/v1/user/5";
    NSDictionary *parameters = @{@"include": @"places"};

    manager = [[AFHTTPRequestOperationManager alloc]
               initWithBaseURL:[NSURL URLWithString:URLString]];

    manager.requestSerializer = [AFHTTPRequestSerializer serializer];

    // Do I need to return this? Or does AFHTTPRequestOperationManager
    // use this implicitly within its request?
    NSMutableURLRequest *request = [manager.requestSerializer
        requestWithMethod:@"GET"
        URLString:URLString
        parameters:parameters
        error:nil
    ];

    // My oAuth Header token
    [manager.requestSerializer  setValue:@"1234" forHTTPHeaderField:@"Authorization"];

    manager.responseSerializer = [AFJSONResponseSerializer serializer];

    [manager HTTPRequestOperationWithRequest: request
            success:^(AFHTTPRequestOperation *operation, id responseObject) {
                NSLog(@"%@", responseObject);
            } 
            failure:^(AFHTTPRequestOperation *operation, NSError * error) {
                NSLog(@"%@", error);
    }];

因此据我了解,HTTPRequestOperationWithRequest 似乎用于创建异步请求。但是,它实际上并没有将它们添加到队列中,它只是创建了请求对象——这就是我没有收到任何输出的原因。

相反,我现在使用 [manager GET]

尝试使用以下对我有用的功能。我解决了Header Value并使用了requestSerializer

- (void)getServerRequest:(NSString *)strRequestURL {

    AFHTTPRequestOperationManager *manager = [AFHTTPRequestOperationManager manager];
    manager.requestSerializer = [AFJSONRequestSerializer serializer];
    [manager.requestSerializer setValue:@"Header1Value" forHTTPHeaderField:@"Header1Key"];

    [manager GET:@"URL String" parameters:nil success:^(AFHTTPRequestOperation *operation, id responseObject) {
        NSLog(@"success: %@", responseObject);
    } failure:^(AFHTTPRequestOperation *operation, NSError *error) {
        NSLog(@"Error: %@", error);
    }];

}