您的位置:首页 > 其它

使用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);
}
});
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: