从Android连接到Jersey REST Web服务

廷玛

我创建了简单的REST Web服务,该服务从客户端获取三个字符串并将其保存到数据库中。从Java客户端应用程序可以正常工作。

现在,我想在Android设备上执行相同的操作。从我的设备连接到服务并执行相同操作的最佳方法是什么?

我是Android的新手,在网上进行了很多搜索,只是找不到足够简单的东西来理解如何做。希望有人能帮忙。

RESTLocationService.java:

    @Path("/data")
public class RESTLocationService {

    @POST
@Path("/post")
@Consumes(MediaType.APPLICATION_JSON)
public Response createDataInJSON(JSONObject data) throws JSONException {

    String lon = data.getString("lon");
    String lat = data.getString("lat");
    String dateTime = data.getString("dateTime");

    String location = "Longitude: " + lon + ", latitude: " + lat
            + ", time: " + dateTime + ".";

    DataHiber dataHiber = new DataHiber(lon, lat, dateTime);
    DBUtils.saveLocations(dataHiber);

    return Response.status(201).entity(location).build();
    }
}

RESTLocationClient.java:

public static void main(String[] args) {
    // TODO Auto-generated method stub

    try {

        Client client = Client.create();

        WebResource webResource = client
                .resource("http://192.168.111.77:8080/TebLocationService/rest/data/post");

        String longy = "46.8888778877";
        String latty = "12.9485495894859";
        String timey = "29/03/2015 14:03";

        JSONObject obj = new JSONObject();
        obj.put("lon", longy);
        obj.put("lat", latty);
        obj.put("dateTime", timey);

        ClientResponse response = webResource.type("application/json")
                .post(ClientResponse.class, obj);

        if (response.getStatus() != 201) {
            throw new RuntimeException("Failed : HTTP error code : "
                    + response.getStatus());
        }

        System.out.println("Output from Server .... \n");
        String output = response.getEntity(String.class);
        System.out.println(output);

    } catch (Exception e) {

        e.printStackTrace();

    }

}
廷玛

我找到了解决方案,但是大多数类都已弃用。目前工作正常,将尝试找到更好的解决方案并将其发布在此处。

            Looper.prepare();
            HttpClient client = new DefaultHttpClient();
            HttpConnectionParams.setConnectionTimeout(client.getParams(),
                    10000);
            HttpResponse response;
            JSONObject obj = new JSONObject();

            String timey = DateFormat.getDateTimeInstance().format(new Date());

            try {
                HttpPost post = new HttpPost(SERVICE_URL);
                obj.put("lon", longitude);
                obj.put("lat", latitude);
                obj.put("dateTime", timey);
                StringEntity se = new StringEntity(obj.toString());
                se.setContentType(new BasicHeader(HTTP.CONTENT_TYPE,
                        "application/json"));
                post.setEntity(se);
                response = client.execute(post);

                if (response != null) {
                    InputStream in = response.getEntity().getContent();
                }

            } catch (Exception e) {
                e.printStackTrace();

            }

            Looper.loop();

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Android应用程序连接到REST服务-拒绝连接

来自分类Dev

如何测试Jersey REST Web服务?

来自分类Dev

Genymotion-连接到Rest服务

来自分类Dev

简单的Android客户端,用于使用Retrofit来使用REST Web服务-为什么出现“无法连接到服务器”错误

来自分类Dev

Jersey REST Web服务在Struts 2中不起作用

来自分类Dev

使用Jersey rest Web服务读取ExtJS writer根属性

来自分类Dev

将XML发布到jersey rest Web服务

来自分类Dev

使用Jersey和ExtJS的REST Web服务使用JSON

来自分类Dev

使用Jersey rest Web服务读取ExtJS writer根属性

来自分类Dev

登录REST Web服务

来自分类Dev

ECONNREFUSED(连接被拒绝)Android连接到Web服务

来自分类Dev

ECONNREFUSED(连接被拒绝)Android连接到Web服务

来自分类Dev

如何使用Jersey为REST Web服务中的服务类指定多个包名称

来自分类Dev

如何使用Jersey为REST Web服务中的服务类指定多个包名称

来自分类Dev

将Apache Jersey for REST Web服务与struts2 Web应用程序集成

来自分类Dev

在 C# 中连接到 REST 网络服务

来自分类Dev

总是连接到Web服务或本地存储Android吗?

来自分类Dev

REST API与REST Web服务与RESTFul Web服务

来自分类Dev

将Android Studio连接到Web服务并连接到SQL Server

来自分类Dev

如何保护REST Web服务?

来自分类Dev

消耗XML Rest Web服务

来自分类Dev

发现REST Web服务的参数

来自分类Dev

Liferay REST Web服务API

来自分类Dev

reactx和REST Web服务

来自分类Dev

REST Web服务JSON格式

来自分类Dev

reactx和REST Web服务

来自分类Dev

Liferay REST Web服务API

来自分类Dev

REST保证与RESTful Web服务

来自分类Dev

Ajax中的Access-Control-Allow-Origin调用jersey rest Web服务

Related 相关文章

热门标签

归档