delete请求数据详解

本文深入探讨了HTTP DELETE请求在处理数据时的使用细节,包括如何在实际项目中实现数据删除操作,涉及的组件如IContact ModelImpl PresenterImpl等,以及自定义的网络工具类MyNetUtils和应用程序基类MyApplication。同时,提到了基于RxJava的API接口(MyRxApi)在数据请求中的角色,以及在MainActivity中如何调用和展示数据的Adapter(MyAdapter)的实现。
摘要由CSDN通过智能技术生成

IContact

package com.example.three_week_demo;

import java.util.Map;

/**
 * 契约类
 */
public interface IContact {
    interface IView{
        void onSuccess(String json);
        void onError(String error);
    }
    interface IModel{
        void getData(String url, Map<String,Object> map, Callback callback);
    }
    interface IPresenter{
        void startRequest(String url,Map<String,Object> map);
        void onDetach();
    }
    interface Callback{
        void onSuccess(String json);
        void onError(String error);
    }
}

ModelImpl

package com.example.three_week_demo.model;

import com.example.three_week_demo.IContact;
import com.example.three_week_demo.utils.MyNetUtils;

import java.util.Map;


public class ModelImpl implements IContact.IModel {
    @Override
    public void getData(String url, Map<String, Object> map, final IContact.Callback callback) {
        MyNetUtils.getInstance().getInfo(url, map, new MyNetUtils.MyCallBack() {
            @Override
            public void success(String jsonStr) {
                callback.onSuccess(jsonStr);
            }

            @Override
            public void error(String error) {
                callback.onError(error);
            }
        });
    }
    public void getDeleteData(String url, Map<String, Object> map, final IContact.Callback callback) {
        MyNetUtils.getInstance().deleteInfo(url, map, new MyNetUtils.MyCallBack() {
            @Override
            public void success(String jsonStr) {
                callback.onSuccess(jsonStr);
            }

            @Override
            public void error(String error) {
                callback.onError(error);
            }
        });
    }
}

PresenterImpl

package com.example.three_week_demo.presenter;


import com.example.three_week_demo.IContact;
import com.example.three_week_demo.model.ModelImpl;

import java.lang.ref.SoftReference;
import java.util.Map;

public class PresenterImpl implements IContact.IPresenter {
    private ModelImpl mModel;
    private IContact.IView mIView;
    private SoftReference<IContact.IView> mSoft;

    public PresenterImpl(IContact.IView iView) {
        mModel = new ModelImpl();
        this.mIView = iView;
        mSoft = new SoftReference<>(mIView);
    }

    @Override
    public void startRequest(String url, Map<String, Object> map) {
        mModel.getData(url, map, new IContact.Callback() {
            @Override
            public void onSuccess(String json) {
                mIView.onSuccess(json);
            }

            @Override
            public void onError(String error) {
                mIView.onError(error);
            }
        });
    }

    public void startDeleteRequest(String url, Map<String, Object> map) {
        mModel.getDeleteData(url, map, new IContact.Callback() {
            @Override
            public void onSuccess(String json) {
                mIView.onSuccess(json);
            }

            @Override
            public void onError(String error) {
                mIView.onError(error);
            }
        });
    }

    @Override
    public void onDetach() {
        if (mSoft != null) {
            mSoft.clear();
        }
        if (mModel != null) {
            mModel = null;
        }
    }
}

MyNetUtils

package com.example.three_week_demo.utils;


import com.example.three_week_demo.MyBaseUrl;
import com.example.three_week_demo.MyRxApi;

import java.io.IOException;
import java.util.Map;
import java.util.concurrent.TimeUnit;

import okhttp3.Interceptor;
import okhttp3.OkHttpClient;
import okhttp3.Request;
import okhttp3.Response;
import okhttp3.ResponseBody;
import okhttp3.logging.HttpLoggingInterceptor;
import retrofit2.Retrofit;
import retrofit2.adapter.rxjava.RxJavaCallAdapterFactory;
import retrofit2.converter.gson.GsonConverterFactory;
import rx.Observer;
import rx.android.schedulers.AndroidSchedulers;
import rx.schedulers.Schedulers;


/**
 * 最终版网络工具类
 */
public class MyNetUtils {

    private MyRxApi myRxApi;

    private MyNetUtils() {
        HttpLoggingInterceptor loggingInterceptor = new HttpLoggingInterceptor();
        loggingInterceptor.setLevel(HttpLoggingInterceptor.Level.BODY);
        OkHttpClient okHttpClient = new OkHttpClient.Builder()
    
  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值