Bootstrap

http请求使用multipart/form-data 方式上传文件和其它参数

http请求使用multipart/form-data 方式上传文件和其它参数

最近再和客户软件对接的时候,被要求用form-data格式传参调用API接口,之前一般只用XML,JSON格式,第一次用form-data,找了几篇文章,发现许多文章的实例代码太复杂,最后黄天不负有心人,找到了一个简单的范例,干净利落脆,秒懂。代码如下:

		    HttpClient httpClient = new HttpClient();
            string path = "http://192.168.88.100:81/api/basic/PostTemplate";//API接口调用网址
            MultipartFormDataContent form = new MultipartFormDataContent();//创建form-data类型
            //StringContent:存字符串类型   ByteArrayContent :存byte类型(文件)
            form.Add(new StringContent("测试机台2"), "machineName");//测试机台2:值     machineName:栏位名称(Key)
            form.Add(new StringContent("任务4"), "taskTemplateName");
            form.Add(new StringContent("2"), "equipmentSerial");
            form.Add(new StringContent("任务模板400"), "templateName");
            form.Add(new StringContent("JT"), "fileType");
            form.Add(new StringContent("67B57884EA331AC6"), "md5CheckCode");

            ByteArrayContent bb = new ByteArrayContent(File.ReadAllBytes(@"C:\Users\111\Desktop\斑马打印机设置IO卡.JT"));//读取文件byte放在			  ByteArrayContent 类型中
            form.Add(bb, "files", "斑马打印机设置IO卡.JT");//bb:文件byte,files:栏位名称,斑马打印机设置IO卡.JT:文件名称(服务器端直接读此名称,这样就可以解决读取字节流无法知道文件名称的问题)
            HttpResponseMessage response = await httpClient.PostAsync(path, form);

            response.EnsureSuccessStatusCode();
            httpClient.Dispose();
            string sd = response.Content.ReadAsStringAsync().Result;//请求结果转为字串

参考网址:https://cloud.tencent.com/developer/ask/sof/1315215/answer/1815274

;