1、@Multipart上传单个文件
@Multipart和@Body同时使用报错、和@FormUrlEncoded同时使用报错
import okhttp3.MultipartBody;
import okhttp3.RequestBody;
import retrofit2.http.*;
@Multipart
@POST("api/v1/grid/upload/{data_code}/{element}")
Object uploadZip(@Part MultipartBody.Part file,
@PartMap Map<String, RequestBody> params,
@Path("data_code") String data_code,
@Path("element") String element);
@Test
public void uploadMinio() throws Exception {
File file = new File("E:\\test\\shp.zip");
RequestBody requestFile = RequestBody.create(MediaType.parse("multipart/form-data"), file);
MultipartBody.Part zip = MultipartBody.Part.createFormData("file", file.getName(), requestFile);
Map<String, RequestBody> map = new HashMap<>();
map.put("timeCode",toRequestBody("20200801000000"));
map.put("level",toRequestBody("single"));
map.put("period",toRequestBody("00000"));
Object obj = minioProtocol.uploadZip(zip,map,"RECT_GRID","TMAX");
System.out.println("obj = " + obj);
}
private RequestBody toRequestBody(String value) {
RequestBody requestBody = RequestBody.create(MediaType.parse("text/plain"), value);
return requestBody;
}
2、@FormUrlEncoded和@Field使用
//1个参数,2个@Field报错
@FormUrlEncoded
@POST("test/repos")
Call<List<Repo>> listRepos(@Field("time") long time);
//参数较多
@FormUrlEncoded
@POST("test/repos")
Call<List<Repo>> listRepos(@FieldMap Map<String, String> params);