1. public static ClientResponse SendClientRequest(List<BasicNameValuePair> params)
    {
    ClientResponse clientResponse = new ClientResponse();
    List<ClientResponseData> clientResponseDataList = new ArrayList<>();
    clientResponse.setClientResponseDataList(clientResponseDataList);
    String url = Switch.url + "ReturnClientInfo";

    HttpClient httpClient = new DefaultHttpClient();
    httpClient.getParams().setParameter(CoreConnectionPNames.CONNECTION_TIMEOUT,5000);
    httpClient.getParams().setParameter(CoreConnectionPNames.SO_TIMEOUT,5000);
    HttpPost httpPost = new HttpPost(url);
    try{
    Log.i("66666666666666666666", "66666666666666666666");
    httpPost.setEntity(new UrlEncodedFormEntity(params, HTTP.UTF_8));

    HttpResponse httpResponse = httpClient.execute(httpPost);

    if(httpResponse.getStatusLine().getStatusCode() == 200)
    {
    StringBuilder builder = new StringBuilder();
    BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(httpResponse.getEntity().getContent()));
    for(String s = bufferedReader.readLine();s != null; s = bufferedReader.readLine())
    {
    builder.append(s);
    }
    Log.i("builder",builder.toString());

    JSONObject jsonObjectBoss = new JSONObject(builder.toString());
    String jsonObjectStatus = jsonObjectBoss.getString("status");
    String jsonObjectMsg = jsonObjectBoss.getString("msg");

    if(jsonObjectStatus.equals("success")) {
    JSONArray jsonArray = jsonObjectBoss.getJSONArray("content");
    for (int i = 0; i < jsonArray.length(); i++) {
    JSONObject jsonObject = (JSONObject) jsonArray.get(i);
    ClientResponseData clientResponseData = new ClientResponseData();
    clientResponseData.setClient_id(jsonObject.getString("client_id"));
    clientResponseData.setClient_name(jsonObject.getString("client_name"));
    clientResponseData.setClient_phone(jsonObject.getString("client_phone"));
    clientResponseData.setClient_picture(jsonObject.getString("client_picture"));
    clientResponseData.setClient_address(jsonObject.getString("client_address"));
    clientResponseData.setUser_id(jsonObject.getString("user_id"));
    clientResponse.getClientResponseDataList().add(clientResponseData);
    }
    }
    clientResponse.setStatus(jsonObjectStatus);
    clientResponse.setMsg(jsonObjectMsg);
    }
    else
    {
    clientResponse.setStatus("error_msg");
    clientResponse.setMsg("返回错误码");
    }

    }catch (Exception e)
    {
    e.printStackTrace();
    clientResponse.setStatus("request_error");
    clientResponse.setMsg("请求错误");
    }
    return clientResponse;
    }
  1. 这是ClientResponse类:
  1. public class ClientResponse extends Response
    {
    List<ClientResponseData> clientResponseDataList;

    public List<ClientResponseData> getClientResponseDataList() {
    return clientResponseDataList;
    }

    public void setClientResponseDataList(List<ClientResponseData> clientResponseDataList) {
    this.clientResponseDataList = clientResponseDataList;
    }
    }
  1.  
  1. 这是ClientResponseData类:
  1. public class ClientResponseData implements Serializable
    {
    private String client_id;
    private String client_name;
    private String client_phone;
    private String client_address;
    private String client_picture;
    private String user_id;

    public String getClient_id() {
    return client_id;
    }

    public String getClient_name() {
    return client_name;
    }

    public void setClient_name(String client_name) {
    this.client_name = client_name;
    }

    public String getUser_id() {
    return user_id;
    }

    public void setUser_id(String user_id) {
    this.user_id = user_id;
    }

    public String getClient_picture() {

    return client_picture;
    }

    public void setClient_picture(String client_picture) {
    this.client_picture = client_picture;
    }

    public String getClient_address() {

    return client_address;
    }

    public void setClient_address(String client_address) {
    this.client_address = client_address;
    }

    public String getClient_phone() {

    return client_phone;
    }

    public void setClient_phone(String client_phone) {
    this.client_phone = client_phone;
    }

    public void setClient_id(String client_id) {
    this.client_id = client_id;
    }
    }
    这是Switch类:
  1. public class Switch {
    public static String url =http://115.29.40.90/GoodsManager/index.php/Home/Index/;
    }
  1.  
  1.  
  1. 接下来是客户端要给服务端传送的数据:
  1. 1、返回仓库的所有物品信息,不用传参数
  1. http://115.29.40.90/GoodsManager/index.php/Home/Index/ReturnStoreInfo
  1. 服务端接收后返回给客户端的信息:
  1. 失败后的返回数据:
    'status' => 'error',
    'msg' => '查询错误或者无查询结果',
    'content' => 'null'
  1. 成功后的返回数据:

    'status' => 'success',
    'msg' => '查询成功',
    'content' => $data //这是返回的商品内容
  1.  
  1. 2、给仓库添加物品
  1. http://115.29.40.90/GoodsManager/index.php/Home/Index/IntoStorage
  1. 客户端需要传送的数据:
  1. goods_id:物品id,形如:’00001
  1. goods_num:物品数量,形如:‘2000
  1. goods_name:物品名称,形如:‘电脑’
  1. goods_vender:生产厂家,形如:‘华硕电脑城’
  1. goods_type:型号,形如:‘Xl520
  1. goods_norms:物品规格,形如:‘合格’
  1. storageUnitName:生产单位名称,形如:‘广州电脑城’
  1. operator:送货或者提货人的姓名,形如:‘小明’
  1. in_out:出库还是入库:1代表出库,0代表入库,这是int
  1. day:出库或者入库的日,形如:‘1日’
  1. month:出库或者入库的月期,形如:‘5月’
  1. year:出库或者入库的年期,形如:‘2016年’
  1.  
  1. 服务端接收后返回给客户端的数据:
  1. 插入成功:
  1. 'status' => 'success',
    'msg' => '插入成功',
    'content'=> 'null'
  1. 插入错误:
  1. 'status' => 'error',
    'msg' => '插入错误',
    'content'=> 'null'
  1. 网络错误等原因:
  1. 'status' => 'error',
    'msg' => '查询错误',
    'content'=> 'null'
  1. 商品已经存在,不能重复插入:
  1. 'status' => 'exist',
    'msg' => '商品已存在',
    'content'=> 'null'
  1.  
  1.  
  1. 3、删除物品
  1. http://115.29.40.90/GoodsManager/index.php/Home/Index/DeleteStorage
  1. 客户端需要传送的数据:
  1. goods_id:物品id
  1. 商品不存在:
  1. 'status' => 'noexist',
    'msg' => '用户不存在',
    'content'=> 'null'
  1. 由于网络等原因造成的失败:
  1. 'status' => 'error',
    'msg' => '查询错误',
    'content'=> 'null'
  1. 删除成功:
  1. 'status' => 'success',
    'msg' => '删除成功',
    'content'=> 'null'
  1.  
  1.  
  1. 4、按日期返回入库或者出库物品信息
  1. http://115.29.40.90/GoodsManager/index.php/Home/Index/ReadByDay
  1. 客户端需要传送的数据:
  1. day:日期
  1.  
  1. 返回成功:
  1. 'status' => 'success',
    'msg' => '返回成功',
    'content'=> $end, //这是返回的商品内容
    'num' => $data //这是返回的商品数量
  1.  
  1. 仓库没有记录:
  1. 'status' => 'none',
    'msg' => '返回空值',
    'content'=> 'null',
    'num' => $data
  1.  
  1. 请求错误(由于网络原因等等):
  1. 'status' => 'error',
    'msg' => '请求错误',
    'content'=> 'null',
    'num' => '0'
  1.  
  1. 5、按月期返回入库或者出库的物品信息
  1. http://115.29.40.90/GoodsManager/index.php/Home/Index/ReadByMonth
  1. 客户端需要传送的数据:
  1. month:月期
  1. 6、按年期返回入库或者出库的物品信息
  1. http://115.29.40.90/GoodsManager/index.php/Home/Index/ReadByYear
  1. 客户端需要传送的数据:
  1. year:年期
  1.  
  1.  
  1. 56的服务端返回值跟4的一样;
  1.  
  1.  
  1.  
  1. android调用的格式是:
  1. List<BasicNameValuePair> pairs = null;
  1. ClientResponse clientResponse = null;
    pairs = new ArrayList<>();
    pairs.add(new BasicNameValuePair("user_id", 1881555100”));
    clientResponse = FuckyApi.SendClientRequest(pairs);
  1. 这样就返回了clientResponse的实例。

android与后台请求的例子的更多相关文章

  1. android+nutz后台如何上传和下载图片

    android+nutz后台如何上传和下载图片  发布于 588天前  作者 yummy222  428 次浏览  复制  上一个帖子  下一个帖子  标签: 无 最近在做一个基于android的ap ...

  2. Android中后台的劳动者“服务”

    前言 作为四大组件之一的Service,想必不少开发者都是了解的,那具体熟悉吗?是不是对Service中的每个知识点是否了解,它与Activity的关系又是什么样的,我们所理解的后台服务跟Servic ...

  3. 基于Retrofit+RxJava的Android分层网络请求框架

    目前已经有不少Android客户端在使用Retrofit+RxJava实现网络请求了,相比于xUtils,Volley等网络访问框架,其具有网络访问效率高(基于OkHttp).内存占用少.代码量小以及 ...

  4. Android应用程序请求SurfaceFlinger服务创建Surface的过程分析

    文章转载至CSDN社区罗升阳的安卓之旅,原文地址:http://blog.csdn.net/luoshengyang/article/details/7884628 前面我们已经学习过Android应 ...

  5. android + php 后台开发

    android+php 安卓与服务器的数据交互 在我们进行android开发的时候,避免不了的要进行登录注册,个人信息获取,数据交互等等这一系列的操作.这样就需要进行android端与服务器端进行数据 ...

  6. Android中后台线程如何与UI线程交互

    我想关于这个话题已经有很多前辈讨论过了.今天算是一次学习总结吧. 在android的设计思想中,为了确保用户顺滑的操作体验.一些耗时的任务不能够在UI线程中运行,像访问网络就属于这类任务.因此我们必须 ...

  7. Android okHttp网络请求之Json解析

    前言: 前面两篇文章介绍了基于okHttp的post.get请求,以及文件的上传下载,今天主要介绍一下如何和Json解析一起使用?如何才能提高开发效率? okHttp相关文章地址: Android o ...

  8. Android okHttp网络请求之Get/Post请求

    前言: 之前项目中一直使用的Xutils开源框架,从xutils 2.1.5版本使用到最近的xutils 3.0,使用起来也是蛮方便的,只不过最近想着完善一下app中使用的开源框架,由于Xutils里 ...

  9. Android okHttp网络请求之文件上传下载

    前言: 前面介绍了基于okHttp的get.post基本使用(http://www.cnblogs.com/whoislcj/p/5526431.html),今天来实现一下基于okHttp的文件上传. ...

随机推荐

  1. struts1 plugin

    struts plugin 在struts.xml中注册之后,在系统启动之后调用 init 方法,通常在init方法中进行转化器的注册,在destory中移除转化器 1. struts文件 <p ...

  2. Linux core 文件介绍

    Linux core 文件介绍 http://www.cnblogs.com/dongzhiquan/archive/2012/01/20/2328355.html 1. core文件的简单介绍在一个 ...

  3. C# 操作Cookie类

    1.Cookie操作类 using System; using System.Data; using System.Configuration;using System.Web;using Syste ...

  4. Oracle一些基本操作

    查看表以及列: Select * From all_tables where owner = 'userName' ---注意,这里需要区分大小写! select * from user_tab_co ...

  5. 【C】漫谈C语言随机数

    来说说C语言如何产生随机数. 有人会说这不简单?time() + srand() + rand() 3个函数不就OK了吗? 是的,不过,我们还是来看看原理比较好,也就是随机数是如何产生的. 这不无聊. ...

  6. android 2.2 videoView 诡异bug

    最近遇到一个问题,在2.2系统上,公司项目中使用VideoView,第一次播放正常,第二次播放黑屏. 由于公司项目使用lua + android 原生,所以试了下原生的android 的VideoVi ...

  7. 玩儿了一下django User authentication

    五一在家,VPN不能链接了,而项目在本地run的过程中,又需要链接公司的SSO server才能login.下雨,不想去公司,又不得不在家做task,只能想办法避开SSO login,以前知道djan ...

  8. php 显示某一个时间相当于当前时间在多少秒前,多少分钟前,多少小时前

    /* *function:显示某一个时间相当于当前时间在多少秒前,多少分钟前,多少小时前 *timeInt:unix time时间戳 *format:时间显示格式 */ public function ...

  9. synchronized锁自旋2

    http://www.infoq.com/cn/articles/java-se-16-synchronized 1 引言 在多线程并发编程中Synchronized一直是元老级角色,很多人都会称呼它 ...

  10. .NET Framework 4 和 .NET Framework 4 Client Profile

    提出这个问题的背景:在新项目中封装了一个DAL来通过EF框架对数据库操作,但是在项目引用后,每当编译时就会出错!更加诡异的是在Web项目和WCF项目中对此DAL引用时就不会出现此问题.作为一个初学者, ...