android和asp交互,Android客户端用Json与Asp.Net服务器交互信息
【实例简介】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服务器交互信息相关推荐
- android 和h5交互,Android中与H5的交互
Android日常开发中,常常会遇到加载H5页面的情况,于是少不了与H5页面的交互问题.具体表现在Android调用H5代码及H5中调用Android代码两种情况. 测试页面 test.png 这里我 ...
- android和webview交互,android webview与原生交互
demo.html完整示例 demo 点击调用android代码 点击调用android代码并传递参数 function androidCallJs() { document.getElementBy ...
- android fragment activity 交互,Android基础之Fragment与Activity交互详解
今天继续讲解Fragment组件的特性,主要是跟Activity的交互和生命周期的关系,我们前面已经说过Fragment是依赖于Activity的,而且生命周期也跟Activity绑定一起.下面我们看 ...
- 关于原生android与H5交互的方法
文章目录 原生android与H5交互 android调用H5方法 H5调用android 原生android与H5交互 前面讲解方法,结尾放代码 android调用H5方法 首先需要一个WebVie ...
- Android面试必过——Android常见的问题
Android常见的问题 标签(空格分隔): 移动开发 常见算法问题的 Java 实现 资料可见 算法介绍可见 算法是很多公司面试必须,国内 BAT 基本面试中都会有,尤以百度为盛. 常见设计模式的 ...
- Asp.Net Core 之 appsettings.json
Asp.Net Core 之 appsettings.json 原文:Asp.Net Core 之 appsettings.json appsettings.json是什么? 相信大家在.Net Fr ...
- python与android交互,Android客户端与Python服务器端的简单通信
最近在做一个APP,需要与服务器通信,一点一点的尝试,记录一下. 本文使用了OkHttp和Flask框架. Android客户端: 实现功能输入完点击OK按钮后会toast成功的信息. Python服 ...
- Android前后端交互细节--Json转化为对象的原理
移动互联网用户基数越来越大,除了一些工具类(指南针.手电筒等)的应用,绝大部分APP都需要与后端进行交互. 交互的数据格式有JSON.XML等,由于JSON具有语法简单.占用空间小等优势,基本所有的公 ...
- android java 调用js,Android中Java和JavaScript交互实例
Android提供了一个很强大的WebView控件用来处理Web网页,而在网页中,JavaScript又是一个很举足轻重的脚本.本文将介绍如何实现Java代码和Javascript代码的相互调用. 如 ...
最新文章
- 云南大学信息学院c语言实验七,云南大学软件学院C语言程序
- jeecg选择按钮带入其他单据值
- Java基础——Java反射机制及IoC原理
- 把CNN里的乘法全部去掉会怎样?华为提出移动端部署神经网络新方法
- git linux 部署网站,centos 搭建git自动部署web应用
- 软件测试 学习之路 CSS (二)
- Jsp+Servlet+Mysql实现的火车票预定管理
- 服务器2003系统U盘安装方法,u盘winpe下安装windows server 2003详细教程
- Scala关于变长参数
- 漫画:老板给员工画饼记
- 【新解】多品种小批量时代下,工业企业的成本核算方法
- 使用 DISM 工具检查并修复 Windows 系统文件
- video标签隐藏右下角的三个点
- 图论科学家教你如何安排婚礼座次
- Teradata天睿公司任命王波为大中华区总裁
- Excel效率手册:早做完,不加班(套装共3册)
- 华为任正非:实事求是的科研方向与二十年的艰苦努力
- 404-Thenbsp;requestednbsp;reso…
- MySQL向表中添加一个列
- 求解输入参数的立方根
热门文章
- React Native 移动开发入门与实战
- 如何清除(登录)缓存
- android电子书App、自定义图表、仿腾讯漫画App、仿淘宝优惠券、3D选择容器等源码...
- 同样是90后别人家的孩子已经是年薪百万算法工程师,而你呢?
- vue系列教程之微商城项目|主页
- 基于JAVA传统文化知识竞赛系统计算机毕业设计源码+系统+数据库+lw文档+部署
- 关于图片存储格式的整理(BMP)
- Java学习者常用软件与学习网站
- 弘辽科技:限制店铺流量上涨的七大因素(下篇)
- Msp430学习笔记—ADC12(一)