iPhone 上的隧道 Web 请求

发布于 2024-10-21 22:51:21 字数 259 浏览 6 评论 0原文

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

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

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

先感谢您。

I want to know if it is possible to tunnel web requests, and of course what to use/implement.

I have already written subclasses of NSInputStream and NSOutputStream to send & receive data via my custom proxy server, which is working wonderfully for socket connections.

I have tried to implement the delegates of UIWebView and NSURLRequest, but I was unable to capture all the HTTP requests made from the UIWebView.

Thank you in advance.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

秉烛思 2024-10-28 22:51:21

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

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

当然,您可能需要重写更多方法,例如 reload、stopLoading 等。

You could try using category to catch all the relevant method calls (template below). However beware dragons and make sure that you consider using the system proxy route before doing this.

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

Off course you'll probably have to override more methods e.g. reload, stopLoading, etc.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文