在好例子网,分享、交流、成长!
您当前所在位置:首页C# 开发实例C#网络编程 → Android客户端用Json与Asp.Net服务器交互信息

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

C#网络编程

下载此实例
  • 开发语言:C#
  • 实例大小:0.41M
  • 下载次数:61
  • 浏览次数:757
  • 发布时间:2018-02-23
  • 实例类别:C#网络编程
  • 发 布 人:中国风
  • 文件格式:.rar
  • 所需积分:3
 相关标签: json Android 服务器 asp.net 客户端

实例介绍

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

【实例截图】

from clipboard

【核心代码】

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<UserInfo> 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<UserInfo>();
    }
    
    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<NameValuePair> pair = new ArrayList<NameValuePair>();
			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<NameValuePair> pair = new ArrayList<NameValuePair>();
			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;
		}
    }
}

网友评论

第 1 楼 hgp1983 发表于: 2019-03-04 13:04 36
怎么才能运行呢?

支持(0) 盖楼(回复)

发表评论

(您的评论需要经过审核才能显示)

查看所有1条评论>>

小贴士

感谢您为本站写下的评论,您的评论对其它用户来说具有重要的参考价值,所以请认真填写。

  • 类似“顶”、“沙发”之类没有营养的文字,对勤劳贡献的楼主来说是令人沮丧的反馈信息。
  • 相信您也不想看到一排文字/表情墙,所以请不要反馈意义不大的重复字符,也请尽量不要纯表情的回复。
  • 提问之前请再仔细看一遍楼主的说明,或许是您遗漏了。
  • 请勿到处挖坑绊人、招贴广告。既占空间让人厌烦,又没人会搭理,于人于己都无利。

关于好例子网

本站旨在为广大IT学习爱好者提供一个非营利性互相学习交流分享平台。本站所有资源都可以被免费获取学习研究。本站资源来自网友分享,对搜索内容的合法性不具有预见性、识别性、控制性,仅供学习研究,请务必在下载后24小时内给予删除,不得用于其他任何用途,否则后果自负。基于互联网的特殊性,平台无法对用户传输的作品、信息、内容的权属或合法性、安全性、合规性、真实性、科学性、完整权、有效性等进行实质审查;无论平台是否已进行审查,用户均应自行承担因其传输的作品、信息、内容而可能或已经产生的侵权或权属纠纷等法律责任。本站所有资源不代表本站的观点或立场,基于网友分享,根据中国法律《信息网络传播权保护条例》第二十二与二十三条之规定,若资源存在侵权或相关问题请联系本站客服人员,点此联系我们。关于更多版权及免责申明参见 版权及免责申明

;
报警