okhttp对中callBack扩展使onError或onResponse能返回更多响应信息


app端经常遇到这样的需求:弹出一个Toast显示服务端的提示信息,比如:“用户名已经被注册”。

方法一:

public abstract class CommonCallback<T> extends Callback {

    private Type type;

    public CommonCallback() {
        Class<? extends CommonCallback> clazz = getClass();
        Type genericSuperclass = clazz.getGenericSuperclass();

        if (genericSuperclass instanceof Class) {
            throw new RuntimeException("没有写泛型");
        }
        ParameterizedType parameterizedType = (ParameterizedType) genericSuperclass;
        type = parameterizedType.getActualTypeArguments()[0];
    }

    @Override
    public void onError(Call call, Exception e, int id) {
        onError(e);
    }

    @Override
    public void onResponse(String response, int id) {
        try {
            JSONObject resp = new JSONObject(response);
            int resultCode &
  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: OkHttp3的Callback返回处理是指在使用OkHttp3发送网络请求时,通过Callback回调接口来处理请求的响应结果。当请求成功时,Callback的onResponse方法会被调用,可以在该方法获取到响应的数据并进行处理。当请求失败时,Callback的onFailure方法会被调用,可以在该方法处理请求失败的情况。在Callback还可以进行一些其他的操作,比如取消请求等。总之,CallbackOkHttp3非常重要的一个接口,可以帮助我们更好地处理网络请求的响应结果。 ### 回答2: okhttp3是一款非常流行的Java HTTP客户端,广泛应用于各种Java项目。在okhttp3callback是用于处理异步HTTP请求结果的重要机制。 callback是一个接口,其包含了处理HTTP请求成功或失败时所需执行的任务。当客户端发出HTTP请求后,如果服务器成功响应callback的onResponse()方法将被调用。这个方法会传入一个Response对象,其包含了服务器响应的HTTP状态码、响应body等信息。我们可以通过这些信息来对服务器响应进行解析和处理。 如果服务器响应失败,callback的onFailure()方法将被调用。这个方法会传入一个Throwable对象,其包含了导致请求失败的具体原因。在这个方法,我们可以根据不同的异常类型来进行不同的错误处理。例如,如果请求超时了,我们可以选择重新发起请求。 在实际应用,我们通常会在callback对服务器响应进行一些解析和处理,然后将处理结果传递给UI层或其它业务逻辑进行进一步处理。这样可以将数据请求和数据处理分离开,从而提高应用的可维护性和可扩展性。 总之,okhttp3的callback机制是处理HTTP请求结果的关键组成部分。通过回调函数的方式,我们可以在请求结果返回后对其进行处理,从而实现异步HTTP请求的目的。 ### 回答3: OkHttp3是一个常用的网络请求库,它提供了许多易于使用且强大的功能,其一个重要的特性就是使用回调(callback)函数返回处理结果。 在OkHttp3,网络请求的响应通过回调函数返回给开发者。同时,为了保证回调函数的线程安全,OkHttp3默认将回调函数执行在独立的线程池,开发者只需要关心回调函数的具体实现即可。 通常,使用OkHttp3发起网络请求时,需要构建一个Request对象,然后通过OkHttpClient对象来执行这个Request。在执行完毕后,响应结果会通过回调函数返回给开发者。回调函数有两个参数,分别为Response和Exception。其Response即为服务器返回响应结果,Exception则表示请求过程出现的异常。 在常见的应用场景,我们通常会通过异步请求的方式来获取网络响应。这样可以避免网络请求过程阻塞主线程,提升应用的用户体验。为了实现异步请求,我们可以使用OkHttp3提供的enqueue()方法来发送网络请求并指定回调函数。使用enqueue()方法会在后台线程池异步执行网络请求。 除了enqueue()方法外,OkHttp3还提供了execute()方法,用于在当前线程同步执行网络请求。但是需要注意的是,使用execute()方法会造成当前线程阻塞,所以一般不建议在应用使用该方法。 总之,使用OkHttp3的回调函数可以非常方便地处理网络响应,在实际开发也非常常见。同时,通过正确使用异步请求,可以提升应用的用户体验。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值