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

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

【实例截图】

a60d9246c40178943fb95de69c34337e.png

【核心代码】

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;

}

}

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值