4.2添加内容项
当需要将 JSON 数据添加到多部分表单内容中时,HttpMultipartFormDataBuilder 提供了灵活的处理方式,具体取决于是否指定了表单名。
添加 JSON 内容#
当需要将 JSON 数据添加到多部分表单内容中时,HttpMultipartFormDataBuilder 提供了灵活的处理方式,具体取决于是否指定了表单名。
1. 未指定表单名:在这种情况下,JSON 数据会被解析并遍历,其属性将作为独立的表单项进行设置。无论是传入匿名类型还是 JSON 字符串,结果都是相同的。
HttpRequestBuilder.Post("https://furion.net") .SetMultipartContent(multipart => { multipart.AddJson(new { id = 1, name = "furion" }); // 未指定表单名(将被赋值给 FormClass 的 Id 和 Name 属性) // multipart.AddJson("{\"id\":1,\"name\":\"furion\"}"); // 支持 JSON 字符串。同上。 });上述代码将生成两个表单项:Id 和 Name,它们对应于服务端接收的类定义,如:
public class FormClass{ public int Id { get; set; } public string Name { get; set; } // 其他属性}2. 指定表单名:如果为 JSON 数据指定了表单名,则整个 JSON 对象将作为表单的一个嵌套项进行设置。这通常用于服务端期望接收具有嵌套结构的对象。
HttpRequestBuilder.Post("https://furion.net") .SetMultipartContent(multipart => { multipart.AddJson(new { id = 1, name = "furion" }); // 未指定表单名(将被赋值给 FormClass 的 Id 和 Name 属性) multipart.AddJson(new { id = 1, name = "furion" }, "child"); // 指定表单名,将赋值给 FormClass 的 Child 属性) // multipart.AddJson("{\"id\":1,\"name\":\"furion\"}", "child"); // 支持 JSON 字符串。同上。 });在这种情况下,服务端接收的类定义应包含一个嵌套类,如:
public class FormClass{ public int Id { get; set; } public string Name { get; set; } public ChildClass Child { get; set; } // 嵌套类 // 其他属性...}public class ChildClass{ public int Id { get; set; } public string Name { get; set; } // 其他属性...}添加 HTML 内容#
向多部分表单内容中添加 HTML 内容。
HttpRequestBuilder.Post("https://furion.net") .SetMultipartContent(multipart => { multipart.AddHtml("<html></html>", "data"); });添加 XML 内容#
向多部分表单内容中添加 XML 内容。
HttpRequestBuilder.Post("https://furion.net") .SetMultipartContent(multipart => { multipart.AddXml("<?xml version=\"1.0\" encoding=\"UTF-8\"?>", "data"); });添加文本内容#
向多部分表单内容中添加文本内容。
HttpRequestBuilder.Post("https://furion.net") .SetMultipartContent(multipart => { multipart.AddText("Furion", "data"); });