avm*_*cio 11 uiwebview nsurlprotocol ios xamarin xamarin.forms
我正在使用Xamarin.Forms处理iOS应用程序.
此应用程序使用UIWebView控制器,显示托管在我的服务器上的Web应用程序.每次我发出请求时,我都必须发送一个自定义标头,以便识别此请求来自移动应用程序,而不是来自浏览器,为此,我使用NSUrlProtocol对象覆盖方法请求插入每个请求的自定义标头.这是我的代码:
public override NSUrlRequest Request {
get {
NSMutableDictionary headers = null;
if (null == base.Request.Headers) {
headers = new NSMutableDictionary ();
} else {
headers = new NSMutableDictionary (base.Request.Headers);
}
headers.Add(NSObject.FromObject(AppVariables.headerVariable), NSObject.FromObject (AppVariables.appVersion));
NSMutableUrlRequest newRequest = (NSMutableUrlRequest)base.Request.MutableCopy ();
newRequest.Headers = headers;
return newRequest;
}
}
Run Code Online (Sandbox Code Playgroud)
我现在遇到的问题是我注意到自从我开始使用NSUrlProtocol后,页面的加载时间增加了很多.现在加载需要10秒,在此实现之前,页面大约需要3秒钟.
任何人都可以指出一些有用的方向来克服这个?
当您使用自定义标头时,我没有发现响应时间延迟的任何原因。就像安德烈亚斯在评论中提到的那样,我相信这与您的服务器代码有关。我建议分析您的服务器代码。
当您从 Fiddler 或 cURL 发送请求(带有自定义标头)时,您是否看到类似的结果?