2017-02-28 5 views
2

(Xamarinフォーム)リモートWebサービスを使用する必要があります。多くのXamarinコースで、私はHttpClientの使用を見てきました。例:Xamarinフォーム:シングルトンまたは新しいHttpClient

private async Task<HttpClient> GetClient() 
{ 
    HttpClient client = new HttpClient(); 

    if (string.IsNullOrEmpty(authorizationKey)) 
    { 
     authorizationKey = await client.GetStringAsync(Url + "login"); 
     authorizationKey = JsonConvert.DeserializeObject<string>(authorizationKey); 
    } 

    client.DefaultRequestHeaders.Add("Authorization", authorizationKey); 
    client.DefaultRequestHeaders.Add("Accept", "application/json"); 

    return client; 
} 

毎回、リモートコールを実行して、新しいHttpClientをインスタンス化する必要があります。適切なパターンは新しいリクエストごとに新しいHttpClientをインスタンス化するか、すべてのリクエストに対して同じHttpClientインスタンスを使用する必要がありますか?

+0

シングルトンを......確かに – SushiHangover

+0

ない新しいHttpClientを毎回作成するためのベストプラクティス –

答えて

2

HttpClientは同時に複数の接続を許可するので、同じオブジェクトを安全に使用できます。

「デフォルトHttpClientを使用すると、要求の送信を開始することができますする最も簡単な方法です。あなただけのものを作成することができ、多くのシナリオでのように、単一のHttpClientは、あなたが同時に必要な数のHTTPリクエストを送信するために使用することができHttpClientをして、あなたのすべての要求にそれを使用してください。

もっとinfo

2

Zroqが言ったようにそれは、1つのインスタンスを使用することをお勧めします。チャンネル9のビデオで説明されている:You are probably using HttpClient wrong

関連する問題