Я вижу, как установить заголовки по умолчанию с помощью AFHTTPClient, но я хотел бы устанавливать определенные заголовки только при выполнении запросов к определенным ресурсам. Есть ли способ сделать это, кроме создания собственного NSURLRequest (с правильными заголовками), создания операции и постановки этой операции в очередь на мой подкласс AFHTTPClient?
Установка заголовков HTTP не по умолчанию с помощью AFHTTPClient
Ответы (1)
Если ваш сетевой запрос будет значительно отличаться, может быть проще создать несколько подклассов AFHTTPClient для обработки разных случаев. Добавление ваших заголовков в - (id)initWithBaseURL:(NSURL *)url
.
В противном случае всякий раз, когда вы создаете свой NSURLRequest с вашим подклассом AFHTTPClient, вы можете устанавливать заголовки несколькими различными методами:
[client setDefaultHeader:@"key" value:@"value"];
[client setAuthorizationHeaderWithUsername:@"username" password:@"password"];
[client setAuthorizationHeaderWithToken:@"token"];
Вы можете установить их перед созданием NSURLRequest примерно так:
NSURLRequest *request = [client requestWithMethod:@"someMethod" path:@"somePath" parameters:someParameters];
Тогда ваши заголовки должны быть только в этом запросе. Вы также можете очистить заголовок авторизации, используя - (void)clearAuthorizationHeader
. Взяв немного из исходного кода AFNetworking, вы может удалить любые необходимые объекты из NSMutableDictionary, если они не были удалены иным образом.
NSURLRequest
), но это определенно не рекомендуется.
- person mattt; 31.03.2013