json 在单个请求中发送多个内容类型

vptzau2j  于 12个月前  发布在  其他
关注(0)|答案(1)|浏览(194)

我正在尝试向API发送多个包含其他JSON数据的文件。API似乎支持多种内容类型。
我如何用两种内容类型形成标题:
1.多部分表单数据(用于文件)

  1. application/json(用于其他json参数)
vlju58qv

vlju58qv1#

感谢https://stackoverflow.com/a/24535293/9404093上的Jack's回答,我使用不同的内容类型设置了以下内容:

uploadFile(request: FileUploadRequest, file: File): Observable<FileUploadResponse> {
    const formData: FormData = new FormData();

    formData.append('details', new Blob(
      [JSON.stringify(request)],
      { type: "application/json" }
    ));
    formData.append('file', file, file.name);
    formData.append('contentType', file.type);

    return this.http.post<FileUploadResponse>(FILES_URI, formData);
  }

字符串
通过使用Blob,您可以为Blob内容(json)分配内容类型。
注意,这也适用于Java Spring后端控制器:

@PostMapping(consumes = MediaType.MULTIPART_FORM_DATA_VALUE)
public ResponseEntity<?> upload(@RequestPart FileUploadRequest details, @RequestPart MultipartFile file) {
    // TODO: the stuff
}

相关问题