package com.huxq17.example.http;
import com.andbase.tractor.listener.LoadListener;
import com.huxq17.example.http.request.HttpRequest;
import com.huxq17.example.http.response.HttpResponse;
/**
* http请求的基类
*/
public interface HttpBase {
/**
* get请求
*
* @param request http请求
* @param listener 监听 同步请求的时候这个参数是用不到的,同步请求可以传null
* @param tag
* @return 封装了网络请求的响应 同步请求的时候返回值不为null,异步请求的时候总是null
*/
public HttpResponse get(HttpRequest request, LoadListener listener, Object... tag);
/**
* post请求
*
* @param request http请求
* @param listener 监听 同步请求的时候这个参数是用不到的,同步请求可以传null
* @param tag
* @return 封装了网络请求的响应 同步请求的时候返回值不为null,异步请求的时候总是null
*/
public HttpResponse post(HttpRequest request, LoadListener listener, Object... tag);
/**
* get post以外的其他请求
*
* @param request http请求
* @param listener 监听 同步请求的时候这个参数是用不到的,同步请求可以传null
* @param tag
* @return 封装了网络请求的响应 同步请求的时候返回值不为null,异步请求的时候总是null
*/
public HttpResponse request(HttpRequest request, LoadListener listener, Object... tag);
/**
* 取消特定tag的http请求
* @param tag
*/
public void cancel(Object... tag);
}