1. 程式人生 > >postman的幾種資料提交的方式,以及幾種提交方式的介紹

postman的幾種資料提交的方式,以及幾種提交方式的介紹

 

 

1、form-data: 

                   就是http請求中的multipart/form-data,它會將表單的資料處理為一條訊息,以標籤為單元,用分隔符分開。既可以上傳鍵值對,也可以上傳檔案。當上傳的欄位是檔案時,會有Content-Type來說明檔案型別;content-disposition,用來說明欄位的一些資訊;

由於有boundary隔離,所以multipart/form-data既可以上傳檔案,也可以上傳鍵值對,它採用了鍵值對的方式,所以可以上傳多個檔案。

2、x-www-form-urlencoded:

             就是application/x-www-from-urlencoded,會將表單內的資料轉換為鍵值對,比如,name=Java&age = 23

3、raw

            可以上傳任意格式的文字,可以上傳text、json、xml、html等

 

4、binary

          相當於Content-Type:application/octet-stream

,從字面意思得知,只可以上傳二進位制資料,通常用來上傳檔案,由於沒有鍵值,所以,一次只能上傳一個檔案。

 

multipart/form-data與x-www-form-urlencoded區別

               multipart/form-data:既可以上傳檔案等二進位制資料,也可以上傳表單鍵值對,只是最後會轉化為一條資訊;

               x-www-form-urlencoded:只能上傳鍵值對,並且鍵值對都是間隔分開的。

 

1)GET:- Used when the client is requesting a resource on the Web server.

    當客戶端向Web伺服器請求一個資源的時候使用。

            Get方法是最簡單最常用的請求方法。它被用來訪問靜態資源,比如HTML文件和圖片等。Get請求可以通過在請求URL中包含查詢引數的方法來檢索動態資訊。例如,我們可以通過URL傳送“name”這個引數(http://www.domain.com?name=Harsh),在這個例子中,Harsh是通過在請求URL中包含引數“name”的動態的資訊。Web服務可以通過這個“name”引數來訪問動態資訊。、

不安全、冪等;

用於獲取資源

 

2) POST: 當客戶端向服務端傳送資訊或者資料的時候使用--例如,表單提交(向Web伺服器傳送大量的複雜的資料)。

安全、冪等;

用於建立子資源

3) DELETE

  Delete方法通過請求URI請求Web服務刪除指定資源。該方法可能在Web服務端被人為的重寫。如果響應資訊中包含一個實體描述刪除的狀態,200(OK)相應程式碼指出資源已經被成功刪除。如果響應程式碼是202(Accepted),它指出資源還沒有被刪除。相似的,如果相應程式碼是204(No Content),它指出資源已經被刪除但是響應程式碼不包含任何實體。

非安全、冪等;
刪除資源;

4)PATCH
非安全、冪等;
用於建立、更新資源,於PUT類似,區別在於PATCH代表部分更新;
後來提出的介面方法,使用時可能去要驗證客戶端和服務端是否支援

 

接下來說一下日常中的使用:

1,post和put的區別:    post和put的區別在於uri,或者說post用於建立子資源,比如介面:POST /api/person/  會建立一個資源比如 /api/person/1或者/api/person/2 ... 或者/api/person/n,建立了新的uri,而put方法建立資源的uri是 PUT /api/person/1,這樣就建立了一個資源,如果1已經存在那麼就是更新,所以put並不是只是更新操作。再有post是非冪等的。    通常情況下,我們都會將post、get、put、delete對應到CRUD操作上,但實際上put並不是只能更新。

2,patch的使用:    patch是2010後成為的正式http方法,詳見RFC5789,它是對put的補充,在沒有patch之前,我們都是用put進行更新操作,這時候我們的介面中通常會有一個邏輯規則,如:如果物件的的一個字元屬性為NULL,那麼就是不更新該屬性(欄位)值,如果物件的字元屬性是“”,那麼就更新該屬性(欄位)的值,通過這種方式來避免全部覆蓋的操作。現在有了patch就解決了這種判斷,在put介面中不管屬性是不是null,都進行更新,在patch介面中就對非null的進行更新;