四種常見的 POST提交數據方式
這里只講兩種常用方式:enctype 為application/json 和enctype :application/x-www-form-urlencoded
enctype 屬性規定在發送到服務器之前應該如何對表單數據進行編碼。默認表單數據會編碼為 “application/x-www-form-urlencoded”。也就是在發送到服務器之前,所有字符都會進行編碼(空格轉換為 “+” 加號,特殊符號轉換為 ASCII HEX 值等)。
enctype可選項有以下四種:
現在主要分享HTTPS協議規定 POST 提交的API接口數據時 ContentType:application/json 和 ContentType:application/x-www-form-urlencoded 的參數格式
當向API接口post請求方式為application/json時
- 接口所需要的參數格式為鍵值對格式: {"pageNumber":1,"pageSize":500,"status":"FINISH","formCodeIds":["c91234737d0c4ea2904d93d5c1fd1603"],"createTime":[1604160000000,1606406400000]}
如果不知道如何從string類型轉換為鍵值對的話,這里有個笨方法如下:
將所需要的轉換的鍵值對以對象的形式進行實例化賦值
1,創建類,並添加對應屬性public int pageNumber { get; set; },
public class ProcesslistK { public int pageNumber { get; set; } public int pageSize { get; set; } public string status { get; set; } public string[] formCodeIds { get; set; } public long[] createTime { get; set; } }
2,實例化該類 Processlist pr = new Processlist();,並賦值 pr.pageNumber = 1;
3,最后一步,以JSON形式封裝該類 string data= JsonConvert.SerializeObject(pr);
ProcesslistK pr = new ProcesslistK(); pr.formCodeIds =formCodeIds; pr.createTime = createTime; pr.status = status; pr.pageNumber = 1; pr.pageSize = 500; string data= JsonConvert.SerializeObject(pr);
這樣最終的參數格式就是application/json所需要的格式(這里創建的新類Processlist,實屬沒必要,可以創建一個空類實例化賦值)
當向API接口post請求方式為application/x-www-form-urlencoded時
1,接口所需要的參數格式: "eid=15012309&day=2020-11-17 &start = 1&limit = 200"
2,這種格式拼接字符即可
請求API時一定要弄清不同類型下對應的格式,不然很容易出問題的