11

Xamarin.Forms を使用して iOS アプリケーションに取り組んでいます。

このアプリケーションは、サーバーでホストされている Web アプリケーションを表示する UIWebView コントローラーを使用しています。リクエストを行うたびに、このリクエストがブラウザからではなくモバイル アプリケーションに送信されたことを識別するためにカスタム ヘッダーを送信する必要があります。これを行うには、メソッドRequestをオーバーライドする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 秒かかっていました。

誰かがこれを克服するための役立つ方向性を指摘できますか??

4

2 に答える 2

1

カスタム ヘッダーを使用している場合、応答時間が遅くなる理由はわかりません。コメントで言及されている Andreas のように、サーバー コードに関係していると思います。サーバーコードのプロファイリングをお勧めします。

Fiddler または cURL から (カスタム ヘッダーを使用して) 要求を送信すると、同様の結果が得られますか?

于 2016-04-01T06:38:53.133 に答える