大家好,到目前為止,我一直使用post方法來更新服務器上的記錄,從未使用過Put方法,因為我對如何發送和接收Put請求的資料感到非常困惑。 我在一些博客上進行了研究,但我無法從中理解。
我有以下問題:
問題1:在Put請求中,我必須使用param或form-data,還是兩者都要?
問題2:另外,我們是否可以在任何請求中同時分享param和form-data的資料?
問題3:在一個情況下,我必須更新服務器中的一條記錄,其中包括一些基本資訊和一個附件,那么我將如何使用Put方法來實作?
目前我正在codeigniter 3中創建api。
請幫助我解決這個問題,謝謝你的關心。
uj5u.com熱心網友回復:
問題1:我必須在Put請求中使用param或form-data,還是兩者都要?
你可以同時使用兩者。
URL中的引數可以使用$this->input->get()來讀取,而對于PUT,你可以使用$this->input->input_stream('key', TRUE);或者$this->input->raw_input_stream see documentation
在你可以在代碼中實際使用原始資料之前,你必須決議或處理這些資料。要看到PUT資料的樣子,只需var_dump即可
。問題2:另外,我們能否在任何Requests中共享引數和表單資料中的資料?
最好是分開使用。但這取決于你的要求,如果你希望這樣做,你可以使用array_merge()將GET和決議的PUT資料合并到一個變數中
問題3:在一個情況下,我必須更新服務器中的一個記錄,其中包括一些基本資訊和一個附件,那么我將如何使用Put方法?
您可以將基本資訊放在URL引數中,而將檔案內容放在請求正文中,但這可能看起來很難看,而且URL有長度限制,所以如果您的基本資訊很大,它可能不適合。
或者直接在請求正文中把它們格式化為原始的JSON。例如:
{}。
"name": "John Smith",
"地址": "Blablabla",
"certificate_file": "<base64 encoded file content>"
}
而對于服務器端的代碼,就像我之前評論的那樣,我建議你使用公開可用的庫,如CodeIgniter Rest Server
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/309947.html
標籤:
上一篇:RestAssured:'在回應中沒有指定支持的內容型別。內容型別為'text/html;charset=ISO-8859-1''的內容型別有支持。
