0
我在普通的Java項目中使用了REST服務,並且它的工作方式應該如此。我現在想做的是在Android應用上使用相同的服務(並獲得相同的結果)。如何將REST客戶端傳輸到Android平臺
response = mWebResource.path("/test").accept("application/xml").get(ClientResponse.class);
status = response.getStatus();
if (status == 200) {
TestBean jbl = response.getEntity(TestBean.class);
System.out.println(jbl);
}
在服務器端,它看起來是這樣的:
import javax.ws.rs.GET;
import javax.ws.rs.Path;
import javax.ws.rs.Produces;
import javax.ws.rs.core.Context;
import javax.ws.rs.core.HttpHeaders;
import javax.ws.rs.core.UriInfo;
@GET
@Path("/test")
@Produces("application/xml")
public TestBean getGetTest(@Context HttpHeaders headers) {
try {
TestBean bean = new TestBean();
return bean;
}
catch (Exception e) {
}
return new TestBean();
}
這裏的結果中,testBean類的實例,當我在一個普通的Java應用程序中使用它。如何讓TestBean進入Android?我只能成功獲取XML流。到目前爲止,我的android測試代碼看起來像這樣。這裏的關鍵似乎是response.getEntity
調用不能接受類參數。
HttpClient client = new DefaultHttpClient();
BasicHttpContext localContext = new BasicHttpContext();
BasicScheme basicAuth = new BasicScheme();
HttpHost targetHost = new HttpHost("192.168.100.114", 80, "http");
HttpGet httpget = new HttpGet("http://192.168.100.114/RestWeb/test");
HttpResponse response = client.execute(targetHost, httpget);
HttpEntity entity = response.getEntity();
Object content = EntityUtils.toString(entity);
System.out.println(content);
我試過了。我的一個問題是,jaxb無法翻譯成dalvik-vm,但它沒有說明爲什麼 –