代码之家  ›  专栏  ›  技术社区  ›  Yifan

用MobileSubstrate修改iPhoneOS上的所有HTTP请求?

  •  1
  • Yifan  · 技术社区  · 16 年前

    我想写一个手机订阅( http://www.iphonedevwiki.net/index.php/MobileSubstrate )接受每个HTTP请求并修改URL的插件(原因非常复杂,需要一段时间来解释,所以相信我,没有其他选择)。基本上,我需要知道什么是最好的Objective-C消息或C函数,我应该覆盖它来拦截任何HTTP请求,修改URL,并将请求发送回原始函数(这不应该只是应用程序发送的第一个请求,也应该是任何重定向)。我想它可能在NSURL或CFNetwork,但不确定具体在哪里。当这个功能被替换时,它应该与任何应用程序和操作系统本身一起工作。

    编辑:
    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已添加。
    例如:将所有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

    将google.com/map1.png更改为google.com/map1.png?i=j?

    1 回复  |  直到 16 年前
        1
  •  1
  •   rpetrich    16 年前

    钩住以下方法并用 mutableCopy

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

    这不会重定向原始TCP套接字连接,只重定向通过标准API传输的HTTP请求。

    注:be 谨慎行事。在我看来,重定向所有http请求违反了用户信任