簡體   English   中英

REST-使用JSON的HTTP發布多部分

[英]REST - HTTP Post Multipart with JSON

我需要接收僅包含2個參數的HTTP Post Multipart:

  • JSON字符串
  • 二進制文件

設置身體的正確方法是哪一種? 我要測試使用Chrome REST控制台HTTP調用,所以我不知道是否正確的解決辦法是設置為JSON參數和二進制文件“標簽”鍵。

在服務器端,我正在使用Resteasy 2.x,我將像這樣閱讀Multipart主體:

@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字符串是否正確? 還有其他方法可以在一個HTTP多部分請求中接收這2個內容嗎?

提前致謝

如果我對您的理解正確,那么您想從HTTP / REST控制台手動編寫一個多部分請求。 分段格式很簡單; 簡短的介紹可以在HTML 4.01規范中找到 您需要提出一個邊界,即在內容中找不到的字符串,比方說HereGoes 您設置請求標頭Content-Type: multipart/form-data; boundary=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--

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM