使用handler和Message获取xutils发送POST请求从服务器端返回数据
2016-05-31 11:14
701 查看
注意:应该在handleMessage中处理从服务器返回的数据,否则会因为线程问题拿不到结果。另外可以在onSuccess方法中更新UI,因为xutils封装了handler。
public class MainActivity extends Activity{ private String responseInfo; private Handler handler; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); handler = new Handler() { @Override public void handleMessage(Message msg) { super.handleMessage(msg); responseInfo = (String) msg.obj; Gson gson = new Gson(); Type type = new TypeToken<JsonBean>() { }.getType(); JsonBean jsonBean = gson.fromJson(responseInfo, type); System.out.println(jsonBean); } }; getFromServer(); } /** * 使用xutils发送POST请求得到服务器返回的数据 */ public void getFromServer() { String url = "http://182.92.195.162:8088/index.php?r=api/client/init"; RequestParams params = new RequestParams(); JSONObject json = new JSONObject(); JSONObject request = new JSONObject(); try { json.put("uid", ""); json.put("sid", ""); json.put("ver", "1"); json.put("request", request); params.addBodyParameter("json", json.toString()); } catch (Exception e) { e.printStackTrace(); } HttpUtils http = new HttpUtils(); http.send(HttpMethod.POST, url, params, new RequestCallBack<String>() { @Override public void onFailure(HttpException arg0, String arg1) { } @Override public void onSuccess(ResponseInfo<String> arg0) { Message msg = Message.obtain(); msg.obj = arg0.result; handler.sendMessage(msg); } }); } }
相关文章推荐
- GVR-SDK-Unity初体验
- ACM 用Java编写基础输入输出问题
- 两个浮点数相等比较
- 53个Oracle语句优化规则详解(转)
- Web前端开发框架对比
- JAVA_JSON_example
- 正则表达式基本语法
- HTTP Content-type 对照表
- C/C++中extern关键字详解
- 不同编译器 关于程序占用系统ROM、RAM情况的查看方法
- [Android]手动触发OnClick事件
- 切换fragment回来的时候如果有类似viewpager的控件,会自动的被隐藏了,自动滑动了最上方的问题解决
- chrome启动参数
- STM32 TIM8 PWM
- zynq petalinux编译用户自定义系统
- OkHttp使用教程——网络操作之OkHttp, Volley以及Gson
- C#知识点总结系列:C#中Delegate和Event以及它们的区别
- 【HDU 4612 Warm up】BCC 树的直径
- 修改mysql root密码
- 期末作业进度表