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;
}
这是ClientResponse类:
public class ClientResponse extends Response
{
List<ClientResponseData> clientResponseDataList;

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

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

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

    时间问题应该是所有编程语言都要处理的.详细学过php的同学知道,php中也会有相差8小时的问题,然而php可以非常方便的解决的,直接设置下就好了 我最近在学习IOS的过程中,发现IOS的日期处理也是个 ...

  2. JQuery..bind命名空间

    先看手册,由于bind方法有三个参数(type,[data],fn),所以手册上这么介绍: .bind() 方法是用于往文档上附加行为的主要方式.所有JavaScript事件对象, 比如focus, ...

  3. Shiro源码分析-初始化-Realm

    在上一篇介绍SecurityManager的初始化过程中,也有realm的粗略介绍. realm的概念在安全领域随处可见: 各种中间件的realm.spring security的realm.shir ...

  4. 阅读javaScript 的原型笔记

    下面我们先看一个例子已经一张图. function Foo() { } Object.prototype.name = 'My Object'; Foo.prototype.name = 'Bar'; ...

  5. CENTOS安装vnc

    先直接进入命令模式,如果是服务器则可以使用putty连接进入命令行模式. 现在知道的centos下的vnc是:tigervnc,由于是服务端所以我们只安装tigervnc-server即可: yum ...

  6. hdu1045 Fire Net

    在一张地图上建立碉堡(X),要求每行没列不能放两个,除非中间有强挡着.求最多能放多少个碉堡 #include<iostream> #include<cstdio> #inclu ...

  7. Java学习-009-文件名称及路径获取实例及源代码

    此文源码主要为应用 Java 获取文件名称及文件目录的源码及其测试源码.若有不足之处,敬请大神指正,不胜感激!源代码测试通过日期为:2015-2-3 00:02:27,请知悉. Java获取文件名称的 ...

  8. 我的工具箱之FileZilla_3.11.0.1_win32-setup.1432524055

    FileZilla是用于在Win和Linux之间传递文件的工具,支持FTP和SFTP. 下载地址:http://pan.baidu.com/s/1gelyIYn 2016年3月2日10:29:30

  9. hibernate一对多注解

    package net.zmcheng.model; import java.util.HashSet;import java.util.Set; import javax.persistence.C ...

  10. 详解MySQL---DDL语句、DML语句与DCL语句

    背景:近几年,开源数据库逐渐流行起来.由于具有免费使用.配置简单.稳定性好.性能优良等优点,开源数据库在中低端应用上占据了很大的市场份额,而 MySQL 正是开源数据库中的杰出代表.MySQL 数据库 ...