2014-09-15 53 views
11

Apache httpclient uygulamasının OKHTTP istemcisiyle değiştirmeyi planladığım bir android projesinde çalışıyorum. İstemcinin çoklu iş parçacığını kullanacak farklı etkinlik ve hizmetlerde ağ istekleri için kullanılabilecek global bir İstemci nasıl oluşturabileceğimi bilmek isterim. OKTTPClient'in tekil bir nesnesini oluşturmalı ve kodumda yeniden kullanmalı mıyım?Çerezlerle paralel sorgular için OKHTTP singleton'u kullanmanın Android yolu

Ayrıca, cookietore'ı istek üzerine eklemeliyim, Müşterinin genel tanımında, tüm isteklerin çerez kullanılabilir mi yoksa isteği bireysel etkinlik veya hizmet oluştururken mi?

cevap

19

OkHttp kullanmanın genel yaklaşımı, bir HttpResponseCache örneğiyle bir OkHttp örneğidir. Tekil olarak oluşturulması gerekip gerekmediği, uygulamanızın gereksinimlerine bağlıdır. Örneğin, Android'in Application.onCreate() uygulamasının bir alt sınıfında OkHttp'nin tek örneği oluşturulabilir; bu durumda, Android uygulamanızın Application sınıfının bir alt sınıfını tek bir satır oluşturuyorsanız tek bir satır olması gerekmez. Onların wiki den

Alıntı:

"Çoğu uygulama, yalnızca bir kez) yeni OkHttp (call onların önbelleği ile yapılandırmak ve her yerde aynı örneği kullanmalıdır"

size kez OkHttp örneğinizi oluşturduysanız, sonraki tüm HTTP isteklerinde kullanılacak kalıcı bir çerez deposu eklemek için setCookieHandler() API yöntemini kullanabilirsiniz. OkHttp ile çalışan bir çerez mağazasının uygulanması hakkında daha fazla ayrıntı için bkz. this SO answer.

+2

Tamamlayıcılık için, geri kalan dokümanlar: "Aksi takdirde, iki önbellek örneği birbirini kesecek, yanıt önbelleğini bozacak ve muhtemelen programınızı kilitleyecektir." – Mauker

+0

Ya önbelleğe alma ile ilgilenmiyorum? – RScottCarson

İlgili konular