基本信息
源码名称:Android客户端用Json与Asp.Net服务器交互信息
源码大小:0.41M
文件格式:.rar
开发语言:C#
更新时间:2018-02-23
   友情提示:(无需注册或充值,赞助后即可获取资源下载链接)

     嘿,亲!知识可是无价之宝呢,但咱这精心整理的资料也耗费了不少心血呀。小小地破费一下,绝对物超所值哦!如有下载和支付问题,请联系我们QQ(微信同号):813200300

本次赞助数额为: 3 元 
   源码介绍
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<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;
		}
    }
}