1

I am making a request to OAuth server which redirects the request to a different URL and then doesn't pass the Authorization header along with it.

I need to implement redirection for all the requests. Earlier I was doing the same using AFHTTPRequestOperation API using the following code:

- (AFHTTPRequestOperation *)request:(TMERequest)request
                     parameters:(NSDictionary *)parameters
                        makeURL:(NSString *(^)(NSString *URL))URLBlock
                 loadingMessage:(NSString *)message
                     completion:(void (^)())completionBlock
                        success:(void (^)(id reponse))successBlock
                        failure:(void (^)(NSError *error))failureBlock     {
    AFHTTPRequestOperation *operation = [super
                                     request:request
                                     parameters:parameters
                                     makeURL:URLBlock
                                     loadingMessage:message
                                     completion:completionBlock
                                     success:successBlock
                                     failure:failureBlock];
    if (self.authorizationToken) {
        //Redirect clears the Authorization header, this is to add it back
        [operation setRedirectResponseBlock:^NSURLRequest *(NSURLConnection *connection, NSURLRequest *request, NSURLResponse *redirectResponse) {
            if (request.allHTTPHeaderFields[kAuthorizationHeader]) {
                return request;
            }
            NSMutableURLRequest *authorizedRequest = [request mutableCopy];
            [authorizedRequest setValue:[NSString stringWithFormat:kAuthorizationFormat, self.authorizationToken] forHTTPHeaderField:kAuthorizationHeader];
            return [authorizedRequest copy];
         }];
    }
    return operation;
}

How do I implement this using AFHTTPSessionManager

Anuj Rajput
  • 836
  • 9
  • 30
  • 1
    With reference to [this](http://stackoverflow.com/questions/22561235/what-is-the-recommended-way-to-intercept-and-prevent-redirects-with-afnetworking) question, the best way to intercept redirects is `setTaskWillPerformHTTPRedirectionBlock`. Once you detect the redirect you could add Headers as required. – Nikhil Lihla Sep 03 '15 at 09:22

0 Answers0