programing

REST - JSON을 사용한HTTP 포스트 멀티파트

bestcode 2022. 9. 5. 23:02
반응형

REST - JSON을 사용한HTTP 포스트 멀티파트

다음 2개의 파라미터만 포함하는 HTTP Post Multipart를 수신해야 합니다.

  • JSON 문자열
  • 바이너리

차체를 올바르게 설정하는 방법은 무엇입니까?Chrome REST 콘솔을 사용하여 HTTP 콜을 테스트하려고 하는데, JSON 파라미터와 바이너리 파일에 "label" 키를 설정하는 것이 올바른 해결책인지 궁금합니다.

서버측에서는 Resteasy 2.x를 사용하고 있으며 멀티파트 본문을 다음과 같이 읽습니다.

@POST
@Consumes("multipart/form-data")
public String postWithPhoto(MultipartFormDataInput  multiPart) {
  Map <String, List<InputPart>> params = multiPart.getFormDataMap();
  String myJson = params.get("myJsonName").get(0).getBodyAsString();
  InputPart imagePart = params.get("photo").get(0);
  //do whatever I need to do with my json and my photo
}

이렇게 가는 거야?특정 콘텐츠 디스포지션을 식별하는 키 "myJsonName"을 사용하여 JSON 문자열을 가져오는 것이 올바른가요?이 2개의 콘텐츠를 1개의 HTTP 멀티파트 요구로 수신할 수 있는 다른 방법이 있습니까?

잘 부탁드립니다

올바르게 이해했다면 HTTP/REST 콘솔에서 수동으로 멀티파트 요청을 작성해야 합니다.멀티파트 포맷은 간단합니다.간단한 소개는 HTML 4.01 사양에 기재되어 있습니다.예를 들어, 그 내용에서 찾을 수 없는 문자열인 경계를 만들어야 합니다.HereGoes요청 헤더를 설정합니다.Content-Type: multipart/form-data; boundary=HereGoes유효한 요청 본문이어야 합니다.

--HereGoes
Content-Disposition: form-data; name="myJsonString"
Content-Type: application/json

{"foo": "bar"}
--HereGoes
Content-Disposition: form-data; name="photo"
Content-Type: image/jpeg
Content-Transfer-Encoding: base64

<...JPEG content in base64...>
--HereGoes--

언급URL : https://stackoverflow.com/questions/9081079/rest-http-post-multipart-with-json

반응형