UIWebView使用NSUrlProtocol 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;
        }
    }

我现在面临的问题是,自从我开始使用NSUrlProtocol以来,我注意到页面的加载时间在不断增加。 现在加载需要10秒钟,在这个实现之前,页面大约需要3秒。

任何人都可以请指出一些有用的方向来克服这一点?


当您使用自定义标头时,我没有看到任何延迟响应时间的原因。 像Andreas在评论中提到的那样,我相信它与你的服务器代码有关。 我会建议分析你的服务器代码。

当您从Fiddler或cURL发送请求(使用自定义标头)时,您看到类似的结果吗?


就像@AndreasPaulsson和@prashant所说的,服务器可能是罪魁祸首。 我会推荐使用Postman等工具测试API并检查响应速度。 我还建议你通过Paul C Betts检查ModernHttpClient。 在iOS中,库使用NSUrlSession。

链接地址: http://www.djcxy.com/p/34803.html

上一篇: UIWebView slow loading using NSUrlProtocol Xamarin.Forms

下一篇: NSURLProtocol + WebView = Not able to get Data of HTTP post