我需要決定需要爲Web服務創建何種REST服務,該服務必須接收患者數據的URL並返回他可以使用的保險信息。此服務必須適用於Android。什麼類型的REST服務與Android配合使用
我從以前的一些帖子瞭解到,that JAXB is not a good idea。肥皂對Android來說真的不好...
因此,我的問題是 - 什麼樣的Web服務適合Android?
我需要決定需要爲Web服務創建何種REST服務,該服務必須接收患者數據的URL並返回他可以使用的保險信息。此服務必須適用於Android。什麼類型的REST服務與Android配合使用
我從以前的一些帖子瞭解到,that JAXB is not a good idea。肥皂對Android來說真的不好...
因此,我的問題是 - 什麼樣的Web服務適合Android?
好的,讓我們試試看。
如果我理解,你需要一個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;
}
}
就這樣做了。
這是迴應你的問題嗎?
JSON可以很好地使用Jackson庫。 GSON可能是一種選擇,但我自己並沒有嘗試過。
由於您提到自己,SOAP幾乎不存在問題,但使用SimpleXML框架而不是JAXB可以很好地完成XML對REST的綁定。對於複雜的對象體系結構,這可能非常緩慢。如果你有選擇,我會說去JSON。
看看http://en.wikipedia.org/wiki/Comparison_of_data_serialization_formats的其他選項。