压缩包:

UploadFileUnitTest.java

一、POST请求

协议规定POST提交的数据必须放在请求体中,但协议并没有规定数据必须使用什么编码方式。而常用的数据编码方式有:

  1. [https://www.runoob.com/http/http-content-type.html](https://www.runoob.com/http/http-content-type.html)<br /> Content-Type:application/x-www-form-urlencoded<br /> 数据被编码为名称/值对,默认类型;<br /> Content-Type:multiparty/form-data<br /> 数据被编码为一条消息,一般用于文件上传;<br /> Content-Type:application/octet-stream<br /> 提交二进制数据,如果用于文件上传,只能上传一个文件;<br /> Content-Type:application/json<br /> 提交json数据

二、post的请求放在test的java文件下

image.png

三、整体代码

1.UploadFileUnitTest类文件代码:

  1. package com.example.networkdemo;
  2. import org.junit.Test;
  3. import java.io.File;
  4. import java.io.IOException;
  5. import okhttp3.Call;
  6. import okhttp3.MediaType;
  7. import okhttp3.MultipartBody;
  8. import okhttp3.OkHttpClient;
  9. import okhttp3.Request;
  10. import okhttp3.RequestBody;
  11. import okhttp3.Response;
  12. public class UploadFileUnitTest {
  13. @Test
  14. public void uploadFileTest() throws IOException {
  15. OkHttpClient okHttpClient = new OkHttpClient();
  16. File file1 = new File("C:\\Users\\ASUS\\Desktop\\1.txt");
  17. File file2 = new File("C:\\Users\\ASUS\\Desktop\\2.txt");
  18. MultipartBody multipartBody = new MultipartBody.Builder()
  19. .addFormDataPart("file1", file1.getName(), RequestBody.create(file1, MediaType.parse("text/plain")))
  20. .addFormDataPart("file2", file2.getName(), RequestBody.create(file2, MediaType.parse("text/plain")))
  21. .addFormDataPart("a","1")
  22. .build();
  23. Request request = new Request.Builder().url("https://www.httpbin.org/post")
  24. .post(multipartBody).build();
  25. Call call = okHttpClient.newCall(request);
  26. Response response = call.execute();
  27. System.out.println(response.body().string());
  28. }
  29. }