Android学习笔记:在Android平台上通过JSON格式与服务器端进行数据交互

这篇博客详细记录了如何在Android应用中创建登录界面,利用JSON格式发送用户名和密码到服务器,以及如何处理服务器返回的JSON数据。重点讨论了数据编码、异步线程(AsyncTask)的使用,以及在Android端如何更新UI。
摘要由CSDN通过智能技术生成
要求:
Android编写一个登录界面,输入用户名和密码,使用JSON格式提交到服务器端。
服务器端收到后返回(JSON格式数据):
“输入的用户”+您好,你已成功登录系统。

其实不管是JSON还是其他类型,都是为了满足Android与服务器端的程序进行数据交换的要求而已
本次笔记的个人觉得 重点如下:
1.服务器端的数据接收 
1)包括数据编码的设定
发送与接受最好都用utf-8来设定编码来
在doPost中加入Response声明
	response.setCharacterEncoding("UTF-8");
	response.setContentType("UTF-8");

2)了解异步线程的用途与如何用异步线程AsyncTask 来更新UI
首先,什么时候需要用到异步线程呢,在需要进行对网络发送接收稍大量的数据的时候,或者占用稍大时间,影响了用户体验而又不是必要的等待时间时,就要用到异步。
然后异步线程的大概用法是这样:
public class JSONOperation extends AsyncTask<JSONObject, Void, String>

这里第一个参数是指 发送给这个线程的数据类型 第二个是后台任务执行的进度、后台计算结果的类型。
里面重写的doInBackgroud(JSONObject... JSONObjs) 就是执行的函数,主要用来执行任务主要内容(在这个例子中主要是进行与服务器端的JSON数据包发送与接受,但不包括对Activity的UI更新操作)。然后可以通过返回一个类型的值比如返回一个String或者JSONObject来给下面重写的onPostExecute方法进行对ActivityUI的更新。
比如说  protected String doInBackground(JSONObject... JSONObjs) 方法 发送到服务器端,并且服务器又发送了一个JSON数据包回来,然后这个方法就可以return这个JSON数据包
然后在下面的onPostExecute(JSONObject obj)就对刚刚doInBackground中的JSONObject类型进行引用,在里面可以添加对UI的操作比如TextView的更新什么的。
如果在doInBackground中执行UI更新操作,就会返回android.view.ViewRootImpl$CalledFromWrongThreadException: Only the original thread that created a view hierarchy can touch its views.  
这个错误意思是 只有原始创建这个视图层次(view hierachy)的线程才能修改它的视图(view)



实现:
Servlet中的doPost代码
public void doPost(HttpServletRequest request, HttpServletResponse response)
			throws ServletException, IOException {
		response.setCharacterEn
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值