You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
90 lines
3.4 KiB
90 lines
3.4 KiB
package com.qst.ypf.qstyunpan.http.api;
|
|
|
|
import com.qst.ypf.qstyunpan.base.InterfaceConfig;
|
|
import com.qst.ypf.qstyunpan.http.HttpPostService;
|
|
import com.trello.rxlifecycle.components.support.RxAppCompatActivity;
|
|
import com.wzgiceman.rxretrofitlibrary.retrofit_rx.Api.HttpManagerApi;
|
|
import com.wzgiceman.rxretrofitlibrary.retrofit_rx.listener.HttpOnNextListener;
|
|
import com.wzgiceman.rxretrofitlibrary.retrofit_rx.listener.HttpOnNextSubListener;
|
|
|
|
import java.io.File;
|
|
|
|
import okhttp3.MediaType;
|
|
import okhttp3.MultipartBody;
|
|
import okhttp3.RequestBody;
|
|
|
|
/**
|
|
* 多api共存方案
|
|
*/
|
|
|
|
public class CombinApi extends HttpManagerApi {
|
|
|
|
public CombinApi(HttpOnNextListener onNextListener, RxAppCompatActivity appCompatActivity) {
|
|
// HttpOnNextListener,有错误处理
|
|
super(onNextListener, appCompatActivity);
|
|
/*统一设置*/
|
|
setCache(true);
|
|
setBaseUrl(InterfaceConfig.BASE_URL);
|
|
}
|
|
|
|
public CombinApi(HttpOnNextSubListener onNextSubListener, RxAppCompatActivity appCompatActivity) {
|
|
// HttpOnNextListener,无错误处理
|
|
super(onNextSubListener, appCompatActivity);
|
|
/*统一设置*/
|
|
setCache(true);
|
|
setBaseUrl(InterfaceConfig.BASE_URL);
|
|
}
|
|
/**
|
|
* 注册
|
|
*/
|
|
public void regeister(String username, String password) {
|
|
/*也可单独设置请求,会覆盖统一设置*/
|
|
setCache(false);
|
|
setMethod(InterfaceConfig.URL_REGISTER);
|
|
HttpPostService httpService = getRetrofit().create(HttpPostService.class);
|
|
doHttpDeal(httpService.register(username, password));
|
|
}
|
|
|
|
|
|
/**
|
|
* 登录
|
|
*/
|
|
public void login(String username, String password) {
|
|
/*也可单独设置请求,会覆盖统一设置*/
|
|
setCache(false);
|
|
setMethod(InterfaceConfig.URL_LOGIN);
|
|
HttpPostService httpService = getRetrofit().create(HttpPostService.class);
|
|
doHttpDeal(httpService.login(username, password));
|
|
}
|
|
/**
|
|
* 文件信息
|
|
*/
|
|
public void getAppFiles(String path, String username) {
|
|
/*也可单独设置请求,会覆盖统一设置*/
|
|
setCache(false);
|
|
setMethod(InterfaceConfig.URL_FILESLIST);
|
|
HttpPostService httpService = getRetrofit().create(HttpPostService.class);
|
|
doHttpDeal(httpService.getAppFiles(path, username));
|
|
}
|
|
|
|
/**
|
|
* 上传
|
|
*/
|
|
public void upload(String currentPath,String filePath, String username) {
|
|
/*也可单独设置请求,会覆盖统一设置*/
|
|
setCache(false);
|
|
setMethod(InterfaceConfig.URL_UPLOAD);
|
|
HttpPostService httpService = getRetrofit().create(HttpPostService.class);
|
|
|
|
RequestBody currentPathRequestBody = RequestBody.create(MediaType.parse("multipart/form-data"), currentPath);
|
|
RequestBody usernameRequestBody = RequestBody.create(MediaType.parse("multipart/form-data"), username);
|
|
File file= new File(filePath);
|
|
RequestBody requestFile = RequestBody.create(MediaType.parse("multipart/form-data"), file);
|
|
// MultipartBody.Part is used to send also the actual file name
|
|
MultipartBody.Part filePart = MultipartBody.Part.createFormData("file", file.getName(), requestFile);
|
|
|
|
doHttpDeal(httpService.upload(currentPathRequestBody, filePart, usernameRequestBody));
|
|
}
|
|
|
|
}
|