Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/352.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/xml/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/swift/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何将REST客户端传输到Android平台_Java_Xml_Rest - Fatal编程技术网

Java 如何将REST客户端传输到Android平台

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

我在一个普通的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.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);