繁体   English   中英

如何使Android应用程序消耗运行在同一台机器上的Tomcat上的JAX Jersey Web Service

[英]How to make android application consume JAX Jersey Web Service running on tomcat on same machine

我是新手,需要一些帮助...

我刚刚设法使用Jersey + JSON运行Java动态Web应用程序Web服务,并使用Android开发人员工具Eclipse击中mysql数据库。Tomcat7目前可以正常运行webservice,并且可以通过带有参数的浏览器URL与数据库进行交互...我也有一个正在运行的Android应用程序,该应用程序具有我需要通过Web服务存储在mysql db中的数据...

我一直在搜索很多教程,这些教程使用了几种不同的框架而没有运气,我很困惑...我用android应用程序运行了一个Eclipse,通过USB连接的android手机以调试模式运行了一个eclipse。使用Jersey和Tomcat7的动态Web应用程序Web服务...

如何使我的客户端android应用消耗在同一台开发机上运行的Web服务?

在此先多谢!

您可以使用任意数量的http / rest客户端库。 您甚至可以使用标准Java,而无需任何库(使用java.net包中的类)

使用java.net包类的示例

URL url = new URL("http://blah.com/messages/1");
connection = (HttpURLConnection) url.openConnection();
connection.setRequestMethod("GET");
connection.setRequestProperty("Accept", "application/xml");

if (connection.getResponseCode() != 200) {
    throw new BetterLuckNextTimeException(...);
}

BufferedReader reader = new BufferedReader(
        new InputStreamReader(connection.getInputStream())
);
// read
connection.disconnect();

然后是非常流行的Apache HttpClient库 从链接中查看快速入门和教程。 该下载还随附了一份PDF格式的良好用户指南。

一些样品

CloseableHttpClient httpclient = HttpClients.createDefault();
HttpGet httpGet = new HttpGet("http://blah.com/messages/1");
CloseableHttpResponse response = httpclient.execute(httpGet);
try {
    System.out.println(response1.getStatusLine());
    HttpEntity entity1 = response1.getEntity();
    // do something useful with the response body
    // and ensure it is fully consumed
    EntityUtils.consume(entity1);
} finally {
    response.close();
}

当然,还有JAX-RX实现的客户端库。 上一篇文章看来,您正在使用Jersey。 由于您尚未解释哪个版本,因此,我仅向您指出可以找到更多信息以及代码段的方向。


如果您尝试使用其中任何一种,并且遇到麻烦,请发布一个完整的示例来演示问题。 包括1)样本后端资源类。 2)客户端代码3)任何相关的错误/异常消息4)您包括的所有jar归档文件(如有必要)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM