iphone - iPhone 上的隧道 Web 请求

标签 iphone uiwebview nsurlrequest nsinputstream nsoutputstream

我想知道是否可以隧道网络请求,当然还有使用/实现什么。

我已经编写了 NSInputStreamNSOutputStream 的子类来通过我的自定义代理服务器发送和接收数据,这对于套接字连接非常有效。

我尝试实现UIWebViewNSURLRequest的委托(delegate),但我无法捕获从UIWebView发出的所有HTTP请求.

提前谢谢您。

最佳答案

您可以尝试使用类别来捕获所有相关的方法调用(下面的模板)。但是要小心龙,并确保在执行此操作之前考虑使用系统代理路由。

UIWebView+PrivateProxy.h

@interface UIWebView (PrivateProxy) 
       - (void)loadRequest:(NSURLRequest *)request;

@end

UIWebView+PrivateProxy.m

@implementation UIWebView (PrivateProxy) 
   - (void)loadRequest:(NSURLRequest *)request {
       if(request.something ....) {
          // handle yourself ...
       } else { 
          [super loadRequest:request]; // use stanadrd implementation
       }
   }
@end

当然,您可能需要重写更多方法,例如重新加载、停止加载等

关于iphone - iPhone 上的隧道 Web 请求,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5322714/

相关文章:

ios - 执行 segue 后未显示 UINavigation 栏颜色

ios - UIWebView LoadFinished 事件在设备上崩溃但在模拟器上没有

ios - 如何在 Swift 中设置 UIWebView 的 "User-Agent" header

iphone - 如何使用按钮更改整个 iPhone 应用程序的字体大小

iphone - ios mobileshop 帮助资源

iphone - 应用大小增加

ios - UIWebView从远程html引用本地资源

ios - 显示键盘后 UIWebView 上的 scalesPageToFit 损坏了吗?

ios - NSURLSessionTask 设置参数与 NSDictionary

ios - API 调用 swift 给出过时的响应