扫二维码与项目经理沟通
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流
http框架:实现异步访问网络;
乌什网站建设公司成都创新互联,乌什网站设计制作,有大型网站制作公司丰富经验。已为乌什上1000+提供企业网站建设服务。企业网站搭建\成都外贸网站建设公司要多少钱,请找那个售后服务好的乌什做网站的公司定做!
使用方法:
(1)创建HttpUtil
public class HttpUtil { private static AsyncHttpClient client = new AsyncHttpClient(); // 实例话对象 static { client.setTimeout(11000); // 设置链接超时,如果不设置,默认为10s } /** * url不带参数返回String * @param urlString url * @param res 处理handler */ public static void get(String urlString, AsyncHttpResponseHandler res){ client.get(urlString, res); } /** * url带参数返回String * @param urlString url * @param params url中的参数 * @param res 处理handler */ public static void get(String urlString, RequestParams params,AsyncHttpResponseHandler res){ // url里面带参数 client.get(urlString, params, res); } /** * 不带参数返回json * @param urlString url * @param res 处理handler */ public static void get(String urlString, JsonHttpResponseHandler res){ // 不带参数,获取json对象或者数组 client.get(urlString, res); } /** * 带参数,返回json * @param urlString url * @param params url参数 * @param res 处理handler */ public static void get(String urlString, RequestParams params,JsonHttpResponseHandler res){ // 带参数,获取json对象或者数组 client.get(urlString, params, res); } /** * 不带参数,返回byte数据 * @param uString url * @param bHandler 处理handler */ public static void get(String uString, BinaryHttpResponseHandler bHandler){ // 下载数据使用,会返回byte数据 client.get(uString, bHandler); } /** * 带参数的post 请求c# * @param url * @param params * @param responseHandler */ public static void post(Context context,String url,HttpEntity entity, ResponseHandlerInterface responseHandler){ client.post(context, url, entity, "application/json", responseHandler);//关键是设置content-type = "application/json" } public static AsyncHttpClient getClient() { return client; } }
(2)在Activity中使用
//url获取 String url = getString(R.string.url); //初始化网络请求参数 RequestParams params = new RequestParams(); params.put(username, username); params.put(password, password); //网络请求,处理返回数据 HttpUtil.get(MyConsts.URL_LOGIN, params, new JsonHttpResponseHandler(){ //网络请求成功 public void onSuccess(int statusCode, Header[] headers, JSONObject response) { //成功获取网络数据,在这里处理网络返回的数据 } //服务器请求失败 public void onFailure(int statusCode, Header[] headers, String responseString, Throwable throwable) { //访网络失败 } //请求结束,不管成功与否都调用该方法 public void onFinish() { //无论成功与否都会执行该方法 } }); //使用post请求c#服务 String username = et_RegisterUsername.getText().toString(); String password = et_RegisterPasswd.getText().toString(); String realname = et_RegisterTruename.getText().toString(); if (Valid.valid(username) && Valid.stringIsEmail(username) && Valid.valid(password) && Valid.valid(realname)) { //将参数按照键值对的形式添加到一个json对象中,因为与c#交互需要传递一个json串 JSONObject json = new JSONObject(); try { json.put(usernameP, username); json.put(passwordP, password); json.put(realNameP, realname); json.put(originP, origin); StringEntity entity = new StringEntity(json.toString()); HttpUtil.post(LoginActivity.this, url, entity, new JsonHttpResponseHandler() { public void onFinish() { cancelProgressDialog(); } public void onFailure(int statusCode, Header[] headers, String responseString, Throwable throwable) { Log.d("failure:", responseString); } public void onSuccess(int statusCode, Header[] headers, JSONObject response) { } }); } catch (JSONException e) { e.printStackTrace(); } catch (UnsupportedEncodingException e) { e.printStackTrace(); } }
特别注意:onFinish方法在onSucess()和onFailure()方法执行之前执行;
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流