国产av日韩一区二区三区精品,成人性爱视频在线观看,国产,欧美,日韩,一区,www.成色av久久成人,2222eeee成人天堂

以JSON格式發(fā)布文件和相關(guān)資料到RESTful WebService
P粉056618053
P粉056618053 2023-08-20 13:47:10
0
2
770
<p>在我正在開(kāi)發(fā)的應(yīng)用程式中,我們希望客戶(hù)端以JSON格式發(fā)送數(shù)據(jù),因此我正在開(kāi)發(fā)RESTful API。該應(yīng)用程式的一部分要求客戶(hù)上傳一個(gè)檔案(通常是圖像),以及有關(guān)圖像的資訊。 </p> <p>我很難追蹤到如何在單一請(qǐng)求中完成這個(gè)操作。是否可以將檔案資料Base64編碼為JSON字串?我需要向伺服器執(zhí)行兩個(gè)POST請(qǐng)求嗎?我是否不應(yīng)該使用JSON來(lái)處理這個(gè)問(wèn)題? </p> <p>另外,我們?cè)卺岫耸褂肎rails,並且這些服務(wù)可由原生行動(dòng)用戶(hù)端(iPhone、Android等)訪問(wèn),如果這些資訊有所不同的話(huà)。 </p>
P粉056618053
P粉056618053

全部回覆(2)
P粉994092873

您可以使用 multipart/form-data 內(nèi)容類(lèi)型在一個(gè)請(qǐng)求中傳送文件和資料:

來(lái)自 http://www.faqs.org/rfcs/rfc2388.html

您可以在每個(gè)邊界之間的每個(gè)部分中包含文件資訊或欄位資訊。我已經(jīng)成功地實(shí)現(xiàn)了一個(gè)需要使用者提交資料和表單的RESTful服務(wù),multipart/form-data完美地工作。該服務(wù)使用Java/Spring構(gòu)建,客戶(hù)端使用C#,所以很遺憾我沒(méi)有Grails的範(fàn)例可以提供給您關(guān)於如何設(shè)定服務(wù)。在這種情況下,您不需要使用JSON,因?yàn)槊總€(gè)「form-data」部分都為您提供了指定參數(shù)名稱(chēng)及其值的位置。

使用multipart/form-data的好處是您正在使用HTTP定義的頭部,因此您遵循了使用現(xiàn)有HTTP工具建立服務(wù)的REST理念。

P粉145543872

我在這裡問(wèn)了一個(gè)類(lèi)似的問(wèn)題:

如何使用REST Web服務(wù)上傳帶有元資料的檔案?

你基本上有三種選擇:

  1. 對(duì)檔案進(jìn)行Base64編碼,但會(huì)增加資料大小約33%,並在伺服器和用戶(hù)端中增加編碼/解碼的處理開(kāi)銷(xiāo)。
  2. 首先以multipart/form-data的形式傳送文件,並將ID傳回給客戶(hù)端。然後客戶(hù)端使用該ID發(fā)送元數(shù)據(jù),伺服器重新關(guān)聯(lián)文件和元數(shù)據(jù)。
  3. 首先發(fā)送元數(shù)據(jù),並將ID傳回給客戶(hù)端。然後客戶(hù)端使用該ID發(fā)送文件,伺服器重新關(guān)聯(lián)文件和元資料。
最新下載
更多>
網(wǎng)站特效
網(wǎng)站源碼
網(wǎng)站素材
前端模板