84669 人學習
152542 人學習
20005 人學習
5487 人學習
7821 人學習
359900 人學習
3350 人學習
180660 人學習
48569 人學習
18603 人學習
40936 人學習
1549 人學習
1183 人學習
32909 人學習
在我正在開發的應用程式中,我們希望客戶端以JSON格式發送數據,因此我正在開發RESTful API。該應用程式的一部分要求客戶上傳一個檔案(通常是圖像),以及有關圖像的資訊。
我很難追蹤到如何在單一請求中完成這個操作。是否可以將檔案資料Base64編碼為JSON字串?我需要向伺服器執行兩個POST請求嗎?我是否不應該使用JSON來處理這個問題?
另外,我們在後端使用Grails,並且這些服務可由原生行動用戶端(iPhone、Android等)訪問,如果這些資訊有所不同的話。
您可以使用multipart/form-data內容類型在一個請求中傳送文件和資料:
來自http://www.faqs.org/rfcs/rfc2388.html:
您可以在每個邊界之間的每個部分中包含文件資訊或欄位資訊。我已經成功地實現了一個需要使用者提交資料和表單的RESTful服務,multipart/form-data完美地工作。該服務使用Java/Spring構建,客戶端使用C#,所以很遺憾我沒有Grails的範例可以提供給您關於如何設定服務。在這種情況下,您不需要使用JSON,因為每個「form-data」部分都為您提供了指定參數名稱及其值的位置。
使用multipart/form-data的好處是您正在使用HTTP定義的頭部,因此您遵循了使用現有HTTP工具建立服務的REST理念。
我在這裡問了一個類似的問題:
如何使用REST Web服務上傳帶有元資料的檔案?
你基本上有三種選擇:
multipart/form-data
您可以使用multipart/form-data內容類型在一個請求中傳送文件和資料:
來自http://www.faqs.org/rfcs/rfc2388.html:
您可以在每個邊界之間的每個部分中包含文件資訊或欄位資訊。我已經成功地實現了一個需要使用者提交資料和表單的RESTful服務,multipart/form-data完美地工作。該服務使用Java/Spring構建,客戶端使用C#,所以很遺憾我沒有Grails的範例可以提供給您關於如何設定服務。在這種情況下,您不需要使用JSON,因為每個「form-data」部分都為您提供了指定參數名稱及其值的位置。
使用multipart/form-data的好處是您正在使用HTTP定義的頭部,因此您遵循了使用現有HTTP工具建立服務的REST理念。
我在這裡問了一個類似的問題:
如何使用REST Web服務上傳帶有元資料的檔案?
你基本上有三種選擇:
multipart/form-data
的形式傳送文件,並將ID傳回給客戶端。然後客戶端使用該ID發送元數據,伺服器重新關聯文件和元數據。