Использование настраиваемого протокола NSURLProtocol с запросами UIWebView и POST

В моем приложении для iOS я использую UIWebView и собственный протокол (с моей собственной реализацией NSURLProtocol). Я был достаточно осторожен, чтобы убедиться, что всякий раз, когда я загружаю URL-адрес, я загружаю что-то подобное в свой UIWebView:

myprotocol: // myserver / mypath

, а в моей реализации NSURLProtocol я беру изменяемую копию NSURLRequest, преобразуйте URL-адрес в http: и отправьте его на мой сервер.

Все работает с HTTP-запросами GET. Проблема, с которой я сталкиваюсь, связана с запросами POST. Похоже, что UIWebView неправильно кодирует данные формы в HTTPBody, если запрос использует мой собственный протокол.

Один обходной путь, поскольку я использую HTTPS для запросов к серверу, заключается в том, что я регистрирую свой обработчик протокола для перехвата http: вместо myprotocol: и могу преобразовывать все вызовы в https: это другой вопрос, здесь указал мне на это решение:

Но мне интересно, есть ли какой-нибудь альтернативный и / или лучший способ достичь того, что я хочу.

10
задан Community 23 May 2017 в 12:23
поделиться