2014-02-27 52 views

回答

1

好的,讓我們試試看。

如果我理解,你需要一個web服務與應用進行交流,這將是這樣的:

Your app calls your WS url (maybe with some POST datas) and your WS responds to your app.

然後,你可以做一個REST web服務,在JSON通信? Android可以使用一些非常好的庫來解析JSON,例如Google GSON

對於WS技術,你可以使用任何你想要的。

事情會像你要求一個對象一樣工作,可以說這是一個有年齡和名字的人的列表。 的API是http://www.yourapi.com/,所以你要問的人,這是http://www.yourapi.com/people

當你調用的API,響應是這樣的:

[{ 
    "age": 18, 
    "name": "toto" 
}, 
{ 
    "age": 21, 
    "name": "foo" 
}] 

所以,從客戶端(您的Android項目),你有一個Person類:Person.java

public class Person { 
    private int age; 
    private String name; 

    public Person(){ 
     this.age = 0; 
     this.name = ""; 
    } 

    public int getAge(){ 
     return age; 
    } 

    public void setAge(int age){ 
     this.age = age; 
    } 

    public String getName({ 
     return name; 
    } 

    public void setName(String name){ 
     this.name = name; 
    } 
} 

哪個是你的模型,以及AsyncTask下載它:

public abstract class PeopleDownloader extends AsyncTask<Integer, Integer, ArrayList<Person>> { 

    private static final String URL = "http://www.yourapi.com/people"; 

    @Override 
    protected ArrayList<Person> doInBackground(Void... voids) { 
     HttpClient httpclient = new DefaultHttpClient(); 
     // Prepare a request object 
     HttpGet httpget = new HttpGet(URL); 
     // Execute the request 
     HttpResponse response; 
     try { 
      Log.d(TAG, "Trying to reach " + httpget.getURI()); 
      response = httpclient.execute(httpget); 
      // Get the response 
      BufferedReader rd = new BufferedReader(new InputStreamReader(response.getEntity().getContent())); 
      String finalResposne = ""; 
      String line = ""; 
      while ((line = rd.readLine()) != null) { 
       finalResposne += line; 
      } 
      Log.d(TAG, finalResposne); 
      return new Gson().fromJson(finalResposne, new TypeToken<List<Person>>() { 
      }.getType()); 
     } catch (Exception e) { 
      Log.e(TAG, "Error in doInBackground " + e.getMessage()); 
     } 
     return null; 
    } 
} 

就這樣做了。

這是迴應你的問題嗎?

1

JSON可以很好地使用Jackson庫。 GSON可能是一種選擇,但我自己並沒有嘗試過。

由於您提到自己,SOAP幾乎不存在問題,但使用SimpleXML框架而不是JAXB可以很好地完成XML對REST的綁定。對於複雜的對象體系結構,這可能非常緩慢。如果你有選擇,我會說去JSON。

看看http://en.wikipedia.org/wiki/Comparison_of_data_serialization_formats的其他選項。

相關問題