四种常见的 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时一定要弄清不同类型下对应的格式,不然很容易出问题的