2012-11-08 7 views
8

Şu anda projem her zaman arka tarafta bir web servisine sahip. Projemi bu yapı/desen ile oluşturmaya alışkınım.Projede http web servis çağrılarını düzenlemek için android/java yapısı/modeli nedir?

Proje

  • HttpMethods Paketi
    • HttpGetThread
    • HttpPostThread
    • HttpMultipartPostThread
  • Arayüzler Paketi
    • IPostResponse

ben vardır benim bu JAVA dosyalarında yazılı edilmiştir kodu

IPostResponse.java

public interface IPostResponse { 
    public void getResponse(String response); 
} 

HttpGetThread.java

public class HttpGetThread extends Thread { 

    private String url; 
    private final int HTTP_OK = 200; 
    private IPostResponse ipostObj; 

    public HttpGetThread(String url, IPostResponse ipostObj) { 
     this.url = url; 
     this.ipostObj = ipostObj; 
    } 

    public void run() { 
     try { 
      HttpClient httpClient = new DefaultHttpClient(); 
      HttpGet httpGet = new HttpGet(url); 
      HttpResponse httpResponse = httpClient.execute(httpGet); 
      int responseCode = httpResponse.getStatusLine().getStatusCode(); 
      if (responseCode == HTTP_OK) { 
       InputStream inputStream = httpResponse.getEntity().getContent(); 
       int bufferCount = 0; 
       StringBuffer buffer = new StringBuffer(); 
       while ((bufferCount = inputStream.read()) != -1) { 
        buffer.append((char) bufferCount); 
       } 
       ipostObj.getResponse(buffer.toString()); 
      } 
     } catch (ClientProtocolException e) { 
      e.printStackTrace(); 
     } catch (IOException e) { 
      e.printStackTrace(); 
     } 
    } 
} 

Thread'u genişleterek ve bir kurucuya ve bir çalışma yöntemine sahip olarak HttpPost ve HttpMultipartPost sınıflarında aynı şekilde. Bir etkinliğe arabirimini uygulamak ve diğer tüm etkinliklere ana faaliyeti genişletmek ve yanıt almak ve parametreleri ile HTTP sınıfların nesnesi oluşturarak arama yapmak ve arama

Sonra

, obj.start();


Hala buna inanıyorum: Çok fazla şeyim yok veya bu yapı çok zayıf. Ben kodu yeniden kullanılabilirliği ben takip etmeli Desen/Yapı Web Servis çoğunlukla tüm faaliyetlerde çağrıları uygulamak ve sahip olmak bir Android uygulaması için, bunu bilmek gerek

?

Sadece Facebook'un web servisini nasıl yaptığını gördüm, örneğin Giriş/Çıkış için Giriş ve Çıkış dinleyicileri var.

Aynı şekilde iyi belgelenmiş herhangi bir blog/makale/cevap var mı? Lütfen, herhangi bir kullanıcı kendi mükemmel deneyimini ve çözümünü aynı şekilde paylaşabilir mi?

Ben

+0

@CloseVoters http://stackoverflow.com/faq # soruları Anlamaya çalışırsanız, bu soru şu türden bir soru değildir: “______ için ______ kullanırım, ne kullanırsınız?”. Bu, sorunun global olarak nasıl çözüleceği ve tekrar kullanılabilir hale getirilmesi ile ilgilidir. Çözüm için en sağlam ve mükemmel olan yol. – MKJParekh

+2

Benzer bir soruya yaklaşımımı sundum [here] (http://stackoverflow.com/a/8697827/570930). Bu soru RESTful müşteriler hakkındaydı - ama konsept aynı. – curioustechizen

+0

Teşekkürler yakında yakında yakından bakacak. – MKJParekh

cevap

İlgili konular