OKHTTP发布FormDataMultiPart

时间:2018-08-17 15:08:45

标签: java spring multipartform-data okhttp3

我需要您的帮助,我想知道是否可以使用okHttp发布FormDataMultiPart。

我知道你会说已经有回应了。

这是我的情况:

//资源

@Consume(FORMDATAMULTIPART)
public Response getMultiPart(FormDataMultiPart multipart) {
   return response.ok(service.postMultiPart(multipart);
}

//服务

public void postMultiPart(FormDataMultiPart multiPart) {
   OkHttpClient okHttpClient = new OkHttpClient();
   final Request request = new Request.Builder() {
      .url(URL)
      .post(multiPart)
}

我知道该帖子只能获取RequestBody,这是我的问题,你们知道伙计如何将FormDataMultiPart转换为RequestBody吗?

非常感谢

1 个答案:

答案 0 :(得分:1)

服务中更改这部分代码

final Request request = new Request.Builder() {
      .url(URL)
      .post(multiPart)

到(假设我正在发送文件)并使用 RequestBuilder

File file; // This is the file I want to send.
MediaType mediaType = MediaType.parse("multipart/form-data");
RequestBody requestBody = new MultipartBody.Builder().setType(MultipartBody.FORM).addFormDataPart("key", "name", RequestBody.create(mediaType, file)).build();

okhttp3.Request.Builder requestBuilder = new okhttp3.Request.Builder()
                    .headers(headerBuild)
                    .url(url);
requestBuilder.post(requestBody);
okhttp3.Request request = requestBuilder.build();

看看上面的代码中已添加的MediaType。