zoukankan      html  css  js  c++  java
  • 如何在Android使用Rest服务从客户端调用webservice

       

    Android类库中已经为我们提供了一切我们需要的东西。
    Rest的原理就是向一个资源的URI发送GET、POST、PUT和DELETE进行获取、创建、保存、删除操作。
    我们就以如下网络商店的Rest服务为例,看看我们通过Android客户端是如何进行调用的(这里只介绍如何发送请求,并获得服务器响应)。

    第一步我们看看如何请求获得所有商品信息:
    //创建一个http客户端
    HttpClient client=new DefaultHttpClient();
    //创建一个GET请求
    HttpGet httpGet=new HttpGet("
    http://www.store.com/products");
    //向服务器发送请求并获取服务器返回的结果
    HttpResponse response=client.execute(httpGet);
    //返回的结果可能放到InputStream,http Header中等。
    InputStream inputStream=response.getEntity().getContent();
    Header[] headers=response.getAllHeaders();
    通过解析服务器返回的流,我们可以将它转为字符串,获取相应的数据。

    第二步可以向服务器增加商品,同样的道理,我们创建一个POST请求,带上相关的商品信息即可。
    //创建一个http客户端
    HttpClient client=new DefaultHttpClient();
    //创建一个POST请求
    HttpPost httpPost=new HttpPost("
    http://www.store.com/product");
    //组装数据放到HttpEntity中发送到服务器
    final List dataList = new ArrayList();
    dataList.add(new BasicNameValuePair("productName", "cat"));
    dataList.add(new BasicNameValuePair("price", "14.87"));
    HttpEntity entity = new UrlEncodedFormEntity(dataList, "UTF-8");
    httpPost.setEntity(entity);
    //向服务器发送POST请求并获取服务器返回的结果,可能是增加成功返回商品ID,或者失败等信息
    HttpResponse response=client.execute(httpPost);
    第三步是如果修改商品信息,我们只需要创建一个PUT请求,带上要修改的参数即可。本例假设第三步中增加的商品返回ID为1234,下面将为商品的价格修改为11.99.

    //创建一个http客户端
    HttpClient client=new DefaultHttpClient();
    //创建一个PUT请求
    HttpPut httpPut=new HttpPut("
    http://www.store.com/product/1234");
    //组装数据放到HttpEntity中发送到服务器
    final List dataList = new ArrayList();
    dataList.add(new BasicNameValuePair("price", "11.99"));
    HttpEntity entity = new UrlEncodedFormEntity(dataList, "UTF-8");
    httpPut.setEntity(entity);
    //向服务器发送PUT请求并获取服务器返回的结果,可能是修改成功,或者失败等信息
    HttpResponse response=client.execute(httpPut);
    第四步我们把上面增加的商品删除,只需要向服务器发送一个DELETE请求即可。

    //创建一个http客户端
    HttpClient client=new DefaultHttpClient();
    //创建一个DELETE请求
    HttpDelete httpDelete=new HttpDelete("
    http://www.store.com/product/1234");
    //向服务器发送DELETE请求并获取服务器返回的结果,可能是删除成功,或者失败等信息
    HttpResponse response=client.execute(httpDelete);
    好了,就这么简单,这样就实现了从android客户端调用Rest服务对资源进行增、删、改、查操作。
  • 相关阅读:
    【Java】CGLIB动态代理
    【Java】JDK动态代理
    Css 选择器优先级整理_Css 选择器优先级详解
    JavaScript 操作浏览器全屏整理_Js 控制浏览器全屏处理
    c# 调用浏览器打开网址并全屏_C#打开本地浏览器
    Css 文字垂直方向居中整理
    JavaScript Promise 对象使用讲解
    ArgumentException: 'gb2312' is not a supported encoding name. For information on defining a custom encoding, see the documentation for the Encoding.RegisterProvider method.
    .Net Excel操作之NPOI,操作Excel单元格富文本,单元格颜色处理
    iis 403禁止访问
  • 原文地址:https://www.cnblogs.com/yejiurui/p/2921326.html
Copyright © 2011-2022 走看看