今天简单测试了一下Android客户端从服务器获取JSON数据,做一下笔记,
1 Android客户端
我使用的是loopj开源的HTTP通信库,从官网下载jar包直接导入即可,
使用此库可以非常方便的通过get或者post向服务器发送请求,而且这个库还提供了处理json数据的抽象接口。下面几行代码就可以实现从服务器端获取JSON数据
</pre><pre name="code" class="java">
<p class="p1">
</p><p class="p2"><span> </span> AsyncHttpClient client = <span class="s1">new</span> AsyncHttpClient();</p>
<span style="white-space:pre"> </span>//设置HTTP请求参数
RequestParams params = new RequestParams();
params.add("type", "login");
client.post(baseUrl, params, new JsonHttpResponseHandler(){
@Override
public void onSuccess(int statusCode, Header[] headers,
JSONObject response) {
/*这里可以对接收到的JSON数据进行处理*/
}
@Override
public void onFailure(int statusCode, Header[] headers,
Throwable throwable, JSONObject errorResponse) {
}
});
2 JavaWeb 服务端
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
//设置response的文本格式
response.setContentType("text/html");
//设置response的字符编码
response.setCharacterEncoding("utf-8");
//新建一个输出类
PrintWriter out = response.getWriter();
String clientIP = request.getRemoteAddr();
System.out.println("收到客户端--> " + clientIP +" 发来的get请求");
//新建一个json对象
JSONObject jsonObj = new JSONObject();
//向JSON对象中添加数据
try {
jsonObj.put("name", "ccc");
jsonObj.put("age", 25);
//输出Json对象
out.print(jsonObj);
} catch (JSONException e) {
e.printStackTrace();
}
}
仅供大家参考,最近正在研究源码,欢迎大家一起交流