【实例简介】Android客户端用Json与Asp.Net服务器交互信息

【实例截图】

【核心代码】

package com.kulmao.json;

import java.io.IOException;

import java.io.UnsupportedEncodingException;

import java.sql.Timestamp;

import java.text.SimpleDateFormat;

import java.util.ArrayList;

import java.util.List;

import org.apache.http.HttpResponse;

import org.apache.http.HttpStatus;

import org.apache.http.NameValuePair;

import org.apache.http.client.ClientProtocolException;

import org.apache.http.client.entity.UrlEncodedFormEntity;

import org.apache.http.client.methods.HttpPost;

import org.apache.http.impl.client.DefaultHttpClient;

import org.apache.http.message.BasicNameValuePair;

import org.apache.http.util.EntityUtils;

import org.json.JSONArray;

import org.json.JSONException;

import org.json.JSONObject;

import android.app.Activity;

import android.content.Context;

import android.os.Bundle;

import android.view.View;

import android.view.View.OnClickListener;

import android.widget.Button;

import android.widget.TextView;

import android.widget.Toast;

public class MainForm extends Activity

{

private static final String URL = "http://192.168.1.30:800/WebJson/DowUser.aspx";

private Context mContext;

private List lUser;

private TextView txtUserInfo;

private Button btnDow;

private Button btnUp;

@Override

public void onCreate(Bundle savedInstanceState)

{

super.onCreate(savedInstanceState);

setContentView(R.layout.main);

txtUserInfo = (TextView)findViewById(R.id.txtUserInfo);

btnDow = (Button)findViewById(R.id.btnDow);

btnUp = (Button)findViewById(R.id.btnUp);

btnDow.setOnClickListener(new btnDow_OnClickListener());

btnUp.setOnClickListener(new btnUp_OnClickListener());

mContext = this;

lUser = new ArrayList();

}

public class btnDow_OnClickListener implements OnClickListener

{

@Override

public void onClick(View v)

{

dowData();

}

}

public class btnUp_OnClickListener implements OnClickListener

{

@Override

public void onClick(View v)

{

upData();

}

}

public void dowData()

{

try

{

lUser.clear();

JSONObject user = new JSONObject();

user.put("username", "admin");

user.put("password", "1111");

HttpPost httpPost = new HttpPost(URL);

List pair = new ArrayList();

pair.add(new BasicNameValuePair("type", "dow"));

pair.add(new BasicNameValuePair("json", user.toString()));

httpPost.setEntity(new UrlEncodedFormEntity(pair, "utf-8"));

HttpResponse resp = new DefaultHttpClient().execute(httpPost);

if(resp.getStatusLine().getStatusCode() == HttpStatus.SC_OK)

{

String strResult = EntityUtils.toString(resp.getEntity());

JSONArray array = new JSONArray(strResult);

for(int i = 0; i < array.length(); i )

{

JSONObject dataJson = array.getJSONObject(i);

UserInfo userInfo = new UserInfo();

userInfo.setId(dataJson.getInt("Id"));

userInfo.setUsername(dataJson.getString("Username"));

userInfo.setHobby(dataJson.getString("Hobby").substring(1, dataJson.getString("Hobby").length() - 1).replace("\"", "").split(","));

userInfo.setBirthday(getTimestampByString(dataJson.getString("Birthday")));

lUser.add(userInfo);

}

String info = "";

for(UserInfo ui : lUser)

{

info = "Id:" ui.getId() "\r\n"

"Name:" ui.getUsername() "\r\n"

"Hobby:" getStringByArray(ui.getHobby(), ",") "\r\n"

"Birthday:" ui.getBirthday().toString() "\r\n";

}

txtUserInfo.setText(info);

}

else

{

Toast.makeText(this, "服务器通信失败,错误代码:" resp.getStatusLine().getStatusCode(), Toast.LENGTH_SHORT).show();

}

}

catch (JSONException e)

{

e.printStackTrace();

}

catch (UnsupportedEncodingException e)

{

e.printStackTrace();

}

catch (ClientProtocolException e)

{

e.printStackTrace();

}

catch (IOException e)

{

e.printStackTrace();

}

}

public void upData()

{

if(lUser.size() == 0)

{

Toast.makeText(mContext, "请先下载数据!", Toast.LENGTH_SHORT).show();

return;

}

try

{

JSONArray userArray = new JSONArray();

for(UserInfo ui : lUser)

{

JSONObject userObject = new JSONObject();

userObject.put("Id", ui.getId());

userObject.put("Username", ui.getUsername());

JSONArray hobby = new JSONArray();

for(String str : ui.getHobby()) hobby.put(str);

userObject.put("Hobby", hobby);

userObject.put("Birthday", ui.getBirthday());

userArray.put(userObject);

}

List pair = new ArrayList();

pair.add(new BasicNameValuePair("type", "up"));

pair.add(new BasicNameValuePair("json", userArray.toString()));

HttpPost post = new HttpPost(URL);

post.setEntity(new UrlEncodedFormEntity(pair, "utf-8"));

HttpResponse resp = new DefaultHttpClient().execute(post);

if(resp.getStatusLine().getStatusCode() == HttpStatus.SC_OK)

{

Toast.makeText(mContext, "上传成功!", Toast.LENGTH_SHORT).show();

}

else

{

Toast.makeText(mContext, "与服务器通信失败,错误代码:" resp.getStatusLine().getStatusCode(), Toast.LENGTH_SHORT).show();

}

}

catch (JSONException e)

{

e.printStackTrace();

}

catch (UnsupportedEncodingException e)

{

e.printStackTrace();

}

catch (ClientProtocolException e)

{

e.printStackTrace();

} catch (IOException e)

{

e.printStackTrace();

}

}

public String getStringByArray(String[] str, String expr)

{

String ss = "";

for(String s : str) ss = s expr;

return ss.substring(0, ss.length() - 1);

}

public static Timestamp getTimestampByString(String dateTime)

{

if(null == dateTime || dateTime.length() == 0)

return null;

SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");

Timestamp date = null;

try

{

date = new Timestamp(sdf.parse(dateTime.replace("T", " ")).getTime());

}

catch (Exception e)

{

return null;

}

return date;

}

public class UserInfo

{

private int id;

private String username;

private String[] hobby;

private Timestamp birthday;

public int getId() {

return id;

}

public void setId(int id) {

this.id = id;

}

public String getUsername() {

return username;

}

public void setUsername(String username) {

this.username = username;

}

public String[] getHobby() {

return hobby;

}

public void setHobby(String[] hobby) {

this.hobby = hobby;

}

public Timestamp getBirthday() {

return birthday;

}

public void setBirthday(Timestamp birthday) {

this.birthday = birthday;

}

}

}

android和asp交互,Android客户端用Json与Asp.Net服务器交互信息相关推荐

  1. android 和h5交互,Android中与H5的交互

    Android日常开发中,常常会遇到加载H5页面的情况,于是少不了与H5页面的交互问题.具体表现在Android调用H5代码及H5中调用Android代码两种情况. 测试页面 test.png 这里我 ...

  2. android和webview交互,android webview与原生交互

    demo.html完整示例 demo 点击调用android代码 点击调用android代码并传递参数 function androidCallJs() { document.getElementBy ...

  3. android fragment activity 交互,Android基础之Fragment与Activity交互详解

    今天继续讲解Fragment组件的特性,主要是跟Activity的交互和生命周期的关系,我们前面已经说过Fragment是依赖于Activity的,而且生命周期也跟Activity绑定一起.下面我们看 ...

  4. 关于原生android与H5交互的方法

    文章目录 原生android与H5交互 android调用H5方法 H5调用android 原生android与H5交互 前面讲解方法,结尾放代码 android调用H5方法 首先需要一个WebVie ...

  5. Android面试必过——Android常见的问题

    Android常见的问题 标签(空格分隔): 移动开发 常见算法问题的 Java 实现 资料可见 算法介绍可见 算法是很多公司面试必须,国内 BAT 基本面试中都会有,尤以百度为盛. 常见设计模式的 ...

  6. Asp.Net Core 之 appsettings.json

    Asp.Net Core 之 appsettings.json 原文:Asp.Net Core 之 appsettings.json appsettings.json是什么? 相信大家在.Net Fr ...

  7. python与android交互,Android客户端与Python服务器端的简单通信

    最近在做一个APP,需要与服务器通信,一点一点的尝试,记录一下. 本文使用了OkHttp和Flask框架. Android客户端: 实现功能输入完点击OK按钮后会toast成功的信息. Python服 ...

  8. Android前后端交互细节--Json转化为对象的原理

    移动互联网用户基数越来越大,除了一些工具类(指南针.手电筒等)的应用,绝大部分APP都需要与后端进行交互. 交互的数据格式有JSON.XML等,由于JSON具有语法简单.占用空间小等优势,基本所有的公 ...

  9. android java 调用js,Android中Java和JavaScript交互实例

    Android提供了一个很强大的WebView控件用来处理Web网页,而在网页中,JavaScript又是一个很举足轻重的脚本.本文将介绍如何实现Java代码和Javascript代码的相互调用. 如 ...

最新文章

  1. 云南大学信息学院c语言实验七,云南大学软件学院C语言程序
  2. jeecg选择按钮带入其他单据值
  3. Java基础——Java反射机制及IoC原理
  4. 把CNN里的乘法全部去掉会怎样?华为提出移动端部署神经网络新方法
  5. git linux 部署网站,centos 搭建git自动部署web应用
  6. 软件测试 学习之路 CSS (二)
  7. Jsp+Servlet+Mysql实现的火车票预定管理
  8. 服务器2003系统U盘安装方法,u盘winpe下安装windows server 2003详细教程
  9. Scala关于变长参数
  10. 漫画:老板给员工画饼记
  11. 【新解】多品种小批量时代下,工业企业的成本核算方法
  12. 使用 DISM 工具检查并修复 Windows 系统文件
  13. video标签隐藏右下角的三个点
  14. 图论科学家教你如何安排婚礼座次
  15. Teradata天睿公司任命王波为大中华区总裁
  16. Excel效率手册:早做完,不加班(套装共3册)
  17. 华为任正非:实事求是的科研方向与二十年的艰苦努力
  18. 404-Thenbsp;requestednbsp;reso…
  19. MySQL向表中添加一个列
  20. 求解输入参数的立方根

热门文章

  1. React Native 移动开发入门与实战
  2. 如何清除(登录)缓存
  3. android电子书App、自定义图表、仿腾讯漫画App、仿淘宝优惠券、3D选择容器等源码...
  4. 同样是90后别人家的孩子已经是年薪百万算法工程师,而你呢?
  5. vue系列教程之微商城项目|主页
  6. 基于JAVA传统文化知识竞赛系统计算机毕业设计源码+系统+数据库+lw文档+部署
  7. 关于图片存储格式的整理(BMP)
  8. Java学习者常用软件与学习网站
  9. 弘辽科技:限制店铺流量上涨的七大因素(下篇)
  10. Msp430学习笔记—ADC12(一)