2010-04-29 2 views
1

Я хочу написать addon MobileSubstrate (http://www.iphonedevwiki.net/index.php/MobileSubstrate), который принимает каждый HTTP-запрос и изменяет URL-адрес. (Причина очень сложная и потребуется время, чтобы объяснить, так что просто поверьте мне, что альтернативы нет). В принципе, мне нужно знать, что является лучшим сообщением Objective-C или функцией C, которое я должен перезаписать, чтобы перехватить любой HTTP-запрос, изменить URL-адрес и отправить запрос обратно на исходную функцию (это должен быть не только первый отправленный запрос по приложению, но любые переадресации тоже). Я думаю, что это может быть в NSURL или CFNetwork, но я точно не знаю, где именно. Эта функция должна, при замене, работать с любыми приложениями и самой ОС.Изменение всех HTTP-запросов на iPhoneOS с помощью MobileSubstrate?

EDIT: Хорошо, вот два примера сценария того, что я хочу сделать, обратите внимание, что метод для переопределения должен быть один, который вызывается любой запрос HTTP в любом из приложения к ОС:
1) Пользователь в типы MobileSafari в aaa.com/a.html
2) aaa.com/a.html перенаправляет к aaa.com/b.html
3) aaa.com/b.html грузов bbb.com/c.png
Я хочу изменить запрос, чтобы все было добавлено i = j.
EX: Изменить все aaa.com/a.html на aaa.com/a.html?i=j, aaa.com/b.html?i=j, bbb.com/c.png?i=j?

И еще один:
1) Пользователь использует Maps.app
2) Google Maps пытается загрузить google.com/map1.png (не реальное изображение, я знаю)
Изменить google.com/map1. png to google.com/map1.png?i=j?

ответ

1

Подключите следующие методы и замените запрос с помощью редактируемого mutableCopy.

  • -[NSURLConnection sendWillSendRequest:redirectResponse:]
  • -[NSURLConnection initWithRequest:delegate:]
  • –[NSURLConnection initWithRequest:delegate:startImmediately:]

Это не будет перенаправлять сырые соединения TCP-сокет, только запросы HTTP, которые направляются через стандартный API.

Примечание: be очень опасается этого. Перенаправление всех запросов HTTP является нарушением доверия пользователя, на мой взгляд

+0

Хорошо, вот пример сценария: 1) Пользователь типов MobileSafari в aaa.com/a.html 2) aaa.com/a.html переадресовывает на aaa.com/b.html 3) aaa.com/b.html загружает bbb.com/c.png Когда я заменяю «- [NSURLConnection sendWillSendRequest: redirectResponse:]» с моим кодом для добавления? i = j в все запросы html, изменяет ли он все aaa.com/a.html на aaa.com/a.html?i=j, aaa.com/b.html?i=j, bbb.com/c.png?i= J? – Yifan

+0

И еще один: 1) Пользователь использует Maps.app 2) Google Maps пытается загрузить google.com/map1.png (не фактическое изображение, я знаю) Заменяет ли этот метод изменение google.com/map1.png на google.com/map1.png?i=j? Кроме того, этот плагин для мобильных субстратов, который я пишу, предназначен только для внутреннего использования. – Yifan

+0

Кроме того, спасибо за ответ. – Yifan

 Смежные вопросы

  • Нет связанных вопросов^_^