Поэтому я использую AFNetworking для использования API.Подписание запросов API с использованием AFNetworking 2.0
Этот API требует, чтобы все запросы подписывались с использованием hmac. Hmac вычисляется по комбинации заголовков, url и body. Затем hmac добавляется в качестве настраиваемого заголовка запроса.
Вычисление hmac и добавление его в заголовки не является проблемой. Тем не менее, кажется, что некоторые заголовки добавляются «в последнюю минуту» перед обработкой запроса.
Мой клиент API является подклассом AFHTTPSessionManager
, и я искал лучшее место, чтобы сделать подписание, и я в настоящее время делает его перегрузки:
- (NSURLSessionDataTask *)dataTaskWithRequest:(NSURLRequest *)request
completionHandler:(void (^)(NSURLResponse *response, id responseObject, NSError *error))completionHandler
Когда я имитировать запросы на тестовом сервере API, чтобы увидеть, какие заголовки я получаю, всегда есть 2 дополнительных заголовка, которых нет, когда я подписывал запрос: Accept-Encoding
и Connection
, иногда я также получаю заголовок Cookie
.
Единственные заголовки, которые я добавляю, помимо подписи hmac, являются Accept
и Content-Type
и пользовательский заголовок, специфичный для APIi, указывающий мой ключ клиента.
Итак, мой вопрос: какой лучший способ/место для этого подписания?
Благодарим за отзыв, к сожалению, вариант 1 не является вариантом, я должен использовать этот API, и это требование использовать его из среды их песочницы. Я обязательно сделаю снимок в варианте 2 и вернусь к вам. Что касается варианта 3, если проект был оставлен, я бы скорее его избежал. – YoGiN
@YoGiN Смотрите мои обновленные изменения и дайте мне знать, если это сработает. –