Java 如何将REST客户端传输到Android平台
我在一个普通的java项目中使用REST服务,它可以正常工作。我现在想做的是在Android应用程序上使用相同的服务(并获得相同的ofc结果) 在服务器端,它看起来像这样:Java 如何将REST客户端传输到Android平台,java,xml,rest,Java,Xml,Rest,我在一个普通的java项目中使用REST服务,它可以正常工作。我现在想做的是在Android应用程序上使用相同的服务(并获得相同的ofc结果) 在服务器端,它看起来像这样: 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
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();
}
这里的结果是在普通java应用程序中使用TestBean类实例。如何将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);
Android应用程序在Java上运行。因此,从理论上讲,您应该能够像在Android应用程序中一样使用代码,而不必做很多更改。不过,Android确实要求所有网络/互联网工作都在一个单独的线程中完成。Android应用程序的编译方式也不同于常规Java程序。因此,您必须使用Android插件将代码加载到Eclipse中,并作为Android项目进行构建/编译。您应该能够做到这一点,而无需对代码进行太多更改。如果您对代码的某一部分有问题,请尝试查看LogCat中的堆栈跟踪。这会让你提前知道问题出在哪里我试过了。我的一个问题是jaxb无法翻译成dalvik vm,但它没有说明原因
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);