public interface GoodsReturnApiService {
@Multipart
@POST(Compares.GOODS_RETURN_POST) //这里是自己post文件的地址
Observable<GoodsReturnPostEntity> postGoodsReturnPostEntitys(@PartMap Map<String, RequestBody> map, @Part List<MultipartBody.Part> parts);
}
public class HttpRequestClient {
public static final String TAG = "HttpRequestClientTAG";
private static Retrofit retrofit;
private static OkHttpClient getOkHttpClient() {
//日志显示级别
HttpLoggingInterceptor.Level level= HttpLoggingInterceptor.Level.BODY;
//新建log拦截器
HttpLoggingInterceptor loggingInterceptor=new HttpLoggingInterceptor(new HttpLoggingInterceptor.Logger() {
@Override
public void log(String message) {
Log.d(TAG, message);
}
});
loggingInterceptor.setLevel(level);
//定制OkHttp
OkHttpClient.Builder httpClientBuilder = new OkHttpClient
.Builder();
//OkHttp进行添加拦截器loggingInterceptor
httpClientBuilder.addInterceptor(loggingInterceptor);
return httpClientBuilder.build();
}
public static Retrofit getRetrofitHttpClient(){
if(null == retrofit){
synchronized (HttpRequestClient.class){
if(null == retrofit){
retrofit = new Retrofit.Builder()
.client(getOkHttpClient())
.baseUrl(Compares.URL)
.addConverterFactory(GsonConverterFactory.create())
.addCallAdapterFactory(RxJava2CallAdapterFactory.create())
.build();
}
}
}
return retrofit;
}
}
private void postGoodsPicToServer(){
Map<String,RequestBody> params = new HashMap<>();
//以下参数是伪代码,参数需要换成自己服务器支持的
params.put("type", convertToRequestBody("type"));
params.put("title",convertToRequestBody("title"));
params.put("info",convertToRequestBody("info");
params.put("count",convertToRequestBody("count"));
//为了构建数据,同样是伪代码
String path1 = Environment.getExternalStorageDirectory() + File.separator + "test1.jpg";
String path2 = Environment.getExternalStorageDirectory() + File.separator + "test1.jpg";
List<File> fileList = new ArrayList<>();
fileList.add(new File(path1));
fileList.add(new File(path2));
List<MultipartBody.Part> partList = filesToMultipartBodyParts(fileList);
HttpRequestClient.getRetrofitHttpClient().create(GoodsReturnApiService.class)
.postGoodsReturnPostEntitys(params,partList)
.subscribeOn(Schedulers.newThread())
.observeOn(AndroidSchedulers.mainThread())
.subscribe(new Observer<GoodsReturnPostEntity>() {
@Override
public void onSubscribe(@NonNull Disposable d) {
}
@Override
public void onNext(@NonNull GoodsReturnPostEntity goodsReturnPostEntity) {
}
@Override
public void onError(@NonNull Throwable e) {
}
@Override
public void onComplete() {
}
});
}
private RequestBody convertToRequestBody(String param){
RequestBody requestBody = RequestBody.create(MediaType.parse("text/plain"), param);
return requestBody;
}
private List<MultipartBody.Part> filesToMultipartBodyParts(List<File> files) {
List<MultipartBody.Part> parts = new ArrayList<>(files.size());
for (File file : files) {
RequestBody requestBody = RequestBody.create(MediaType.parse("image/png"), file);
MultipartBody.Part part = MultipartBody.Part.createFormData("multipartFiles", file.getName(), requestBody);
parts.add(part);
}
return parts;
}
机械节能产品生产企业官网模板...
大气智能家居家具装修装饰类企业通用网站模板...
礼品公司网站模板
宽屏简约大气婚纱摄影影楼模板...
蓝白WAP手机综合医院类整站源码(独立后台)...苏ICP备2024110244号-2 苏公网安备32050702011978号 增值电信业务经营许可证编号:苏B2-20251499 | Copyright 2018 - 2025 源码网商城 (www.ymwmall.com) 版权所有