方法一:你有两个选项在开始时创建的NSMutableUrlRequest和加载,用 web 视图 loadReqest 或接管您的应用程序与NSURLProtocol的完整 URL 加载。
最简单的方法是代码的第一选择作为其唯一的多余行:(已验证可行)
- (BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType { NSMutableURLRequest *mutableRequest = [request mutableCopy]; NSString *sendParam = [[NSString alloc] initWithData:mutableRequest.HTTPBody encoding:NSUTF8StringEncoding]; if(![sendParam isEqualToString:@""]){ NSString *newData = [sendParam MD5Value]; NSUInteger length = [newData length]; [mutableRequest addValue:[NSString stringWithFormat:@"%ld",length] forHTTPHeaderField:@"FELength"]; request = [mutableRequest copy]; }else{ return YES; } [self.webView loadRequest:request]; return YES; }
方法二:选择使用NSURLProtocol来接管你这涉及注册自己的解决方案,使用创建一个具体的类的应用程序的 URL 加载。重写的主要方法是 canonicalRequestForRequest
。
我建议你带一个看看这两个教程NSNipster和raywenderlich为指南。(未验证)