Creating a proper MultipartBuilder Http Request with OKHttp

前端 未结 3 1857
无人及你
无人及你 2021-01-07 08:20

ild like to recode my project and use okHttp instead of the default HttpClient implemented in Android.

I\'ve downloaded the latest source of the okhttp-main release.

3条回答
  •  我在风中等你
    2021-01-07 08:33

    Uploading file in multipart using OkHttp

    private static final String IMGUR_CLIENT_ID = "...";
    private static final MediaType MEDIA_TYPE_PNG = MediaType.parse("image/png");
    
    private final OkHttpClient client = new OkHttpClient();
    
    public void run() throws Exception {
      // Use the imgur image upload API as documented at https://api.imgur.com/endpoints/image
      RequestBody requestBody = new MultipartBuilder()
          .type(MultipartBuilder.FORM)
          .addPart(
              Headers.of("Content-Disposition", "form-data; name=\"title\""),
              RequestBody.create(null, "Square Logo"))
          .addPart(
              Headers.of("Content-Disposition", "form-data; name=\"image\""),
              RequestBody.create(MEDIA_TYPE_PNG, new File("website/static/logo-square.png")))
          .build();
    
      Request request = new Request.Builder()
          .header("Authorization", "Client-ID " + IMGUR_CLIENT_ID)
          .url("https://api.imgur.com/3/image")
          .post(requestBody)
          .build();
    
      Response response = client.newCall(request).execute();
      if (!response.isSuccessful()) throw new IOException("Unexpected code " + response);
    
      System.out.println(response.body().string());
    }
    

提交回复
热议问题