版权声明:本文为HaiyuKing原创文章,转载请注明出处!
上一篇讲了如何在项目中导入OKHttputils库的操作,这一篇主要讲常见请求的写法。
public String getPersionTypeApi(StringCallback callback) throws Exception { String result = ""; OkHttpUtils .get() .url(getSpcyUrl(ServerApi.GET_PERSION_TYPE_URL)) .addParams("IS_JSON", "true") .addParams("VALUE_OBJES_4_JSON", "jsonMap") .id(100) .tag(context) .build() .execute(callback); return result; }
调用
private void getPersionType(){ try { LoginLogic.Instance(MainActivity.this).getPersionTypeApi(new GetPersionTypeStringCallback()); } catch (Exception e) { e.printStackTrace(); } }
回调
public class GetPersionTypeStringCallback extends StringCallback { @Override public void onBefore(Request request, int id) {//showProgressDialog("");//显示进度加载框 } @Override public void onAfter(int id) {//dismissProgressDialog();//隐藏进度加载框 } @Override public void onError(Call call, Exception e, int id) { ToastUtil.showShortToast(MyApplication.getAppContext().getResources().getString(R.string.login_again)); Log.w(TAG,"{onError}e="+e.toString()); } @Override public void onResponse(String response, int id) { Log.e(TAG, "onResponse:response="+response); switch (id) { case 100://http try { if (response != null && !"".equals(response)){ //解析 } else { ToastUtil.showShortToast(MyApplication.getAppContext().getResources().getString(R.string.login_null_exception)); } } catch (JSONException e) { ToastUtil.showShortToast(MyApplication.getAppContext().getResources().getString(R.string.login_json_exception)); }catch (Exception e) { ToastUtil.showShortToast(MyApplication.getAppContext().getResources().getString(R.string.login_json_exception)); } finally { } break; case 101://https break; } } @Override public void inProgress(float progress, long total, int id) { Log.e(TAG, "inProgress:" + progress); } }
Post请求
public String LoginApi(String userName, String password,StringCallback callback) throws Exception { String result = ""; OkHttpUtils .post() .url(getSpcyUrl(ServerApi.LOGIN_URL)) .addParams("user.userName", userName) .addParams("user.password", password) .addParams("IS_JSON", "true") .addParams("loginModel", "mobile") .addParams("VALUE_OBJES_4_JSON", "loginUser") .addParams("userLoginModel", "mobile") .id(100) .tag(context) .build() .execute(callback); return result; }
调用
private void Login(){ String userName = "xxx"; String passWord = "sssxxxccccvvfddfggfgfg"; try { LoginLogic.Instance(MainActivity.this).LoginApi(userName, passWord, new LoginStringCallback()); } catch (Exception e) { e.printStackTrace(); } }
回调
public class LoginStringCallback extends StringCallback { @Override public void onBefore(Request request, int id) {//showProgressDialog("");//显示进度加载框 } @Override public void onAfter(int id) {//dismissProgressDialog();//隐藏进度加载框 } @Override public void onError(Call call, Exception e, int id) { ToastUtil.showShortToast(MyApplication.getAppContext().getResources().getString(R.string.login_again)); Log.w(TAG,"{onError}e="+e.toString()); } @Override public void onResponse(String response, int id) { Log.e(TAG, "onResponse:response="+response); switch (id) { case 100://http try { if (response != null && !"".equals(response)){ //解析登录成功信息 JSONObject responseObj = new JSONObject(response); } else { ToastUtil.showShortToast(MyApplication.getAppContext().getResources().getString(R.string.login_null_exception)); } } catch (JSONException e) { ToastUtil.showShortToast(MyApplication.getAppContext().getResources().getString(R.string.login_json_exception)); }catch (Exception e) { ToastUtil.showShortToast(MyApplication.getAppContext().getResources().getString(R.string.login_json_exception)); } finally { } break; case 101://https break; } } @Override public void inProgress(float progress, long total, int id) { Log.e(TAG, "inProgress:" + progress); } }
postString【Json数据】请求
public String postJsonApi(PostJsonModel postJsonModel, StringCallback callback){ String result = ""; OkHttpUtils .postString() .url(getSpcyUrl(ServerApi.POSTJSON_URL)) .content(new Gson().toJson(postJsonModel)) .mediaType(MediaType.parse("application/json; charset=utf-8")) .id(100) .tag(context) .build() .execute(callback); return result; }
package com.why.project.okhttputilsdemo.model; /** * Created by HaiyuKing * Used */ public class PostJsonModel { private String title = ""; private String tic = ""; private String type = ""; public String getTic() { return tic; } public void setTic(String tic) { this.tic = tic; } public String getType() { return type; } public void setType(String type) { this.type = type; } public String getTitle() { return title; } public void setTitle(String title) { this.title = title; } }