关于OkGo中由于响应码不同返回的错误提示无法获取解决方案

   使用okgo过程中发现原有的callBack无法再onError方法中返回错误信息内容,所以可以通过自定义callBack 方法来获取响应的内容:

 eg:

package com.lide.mygit;

public class MainActivity extends AppCompatActivity implements View.OnClickListener{

    private Button mBt_req;
    private TextView mTv_rece;
    private String mRequestJsonData;
    private String mPostUrl1;
    private String mPostUrl;
    private String mRequestJsonData1;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        mBt_req = (Button) findViewById(R.id.bt_req);
        mTv_rece = (TextView) findViewById(R.id.tv_receive);
        mBt_req.setOnClickListener(this);
       init();
    }

    private void init() {

        String apiMethod = "api/seeding-position/wave-number/confirm";
        mPostUrl = Configs.apiUrl + apiMethod;

        RequestLookProduct requestLookProduct = new RequestLookProduct();
        requestLookProduct.waveNumber = "222";

        mRequestJsonData1 = new Gson().toJson(requestLookProduct);

    }


    @Override
    public void onClick(View v) {
        OkGo.post(mPostUrl).tag(this).upJson(mRequestJsonData1).headers("authorization", "APP_KEYS "+Configs.appKey).execute(new MyCallback() {
            @Override
            public void onBefore(BaseRequest request) {
                super.onBefore(request);
                Toast.makeText(MainActivity.this,"before",Toast.LENGTH_SHORT).show();
            }

            @Override
            public void onSuccess(String s, Call call, Response response) {
                mTv_rece.setText(s);
                Log.d("test",s);
            }

            @Override
            public void MyOnError(Call call, Response response, Exception e,String errorMsg) {
                  mTv_rece.setText(errorMsg);
                 Toast.makeText(MainActivity.this,"error"+e.getMessage()+"__"+errorMsg,Toast.LENGTH_SHORT).show();

        }

        });


    }


    public  abstract  class MyCallback extends AbsCallback<String> {

        private String mS;

        @Override
        public  abstract void onSuccess(String s, Call call, Response response) ;

        @Override
        public String convertSuccess(Response response) throws Exception {
            mS = StringConvert.create().convertSuccess(response);

            response.close();
            return mS;
        }

        @Override
        public void onError(Call call, Response response, Exception e) {
            super.onError(call, response, e);
            MyOnError(call, response, e,mS);
        }
        
        public abstract void MyOnError(Call call, Response response, Exception e,String errorMsg) ;
    }

   
}

  • 3
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值