3.5文件 / 流 / 请求内容
从本地路径或互联网地址中设置文件内容,自动识别文件名和 Content-Type。
设置文件内容#
从本地路径或互联网地址中设置文件内容,自动识别文件名和 Content-Type。
// 设置本地文件HttpRequestBuilder.Post("https://furion.net/") .SetFileContent(@"C:\Users\Furion\test.png");// 设置本地文件并指定文件名和内容类型HttpRequestBuilder.Post("https://furion.net/") .SetFileContent(@"C:\Users\Furion\test.png", "avatar.png", "image/png");// 设置互联网文件HttpRequestBuilder.Post("https://furion.net/") .SetFileContent("https://furion.net/files/test.png");// 设置互联网文件并指定自定义请求配置HttpRequestBuilder.Post("https://furion.net/") .SetFileContent("https://furion.net/files/test.png", configure: (httpClient, httpRequestMessage) => { httpClient.Timeout = TimeSpan.FromSeconds(30); });设置二进制流内容#
直接设置 Stream 作为请求内容,适用于文件流、内存流、网络流等场景。
// 设置文件流HttpRequestBuilder.Post("https://furion.net/") .SetStreamContent(File.OpenRead(@"C:\Users\Furion\test.png"));// 设置文件流并指定文件名和内容类型HttpRequestBuilder.Post("https://furion.net/") .SetStreamContent(File.OpenRead(@"C:\Users\Furion\test.png"), "avatar.png", "image/png");// 设置内存流var memoryStream = new MemoryStream(Encoding.UTF8.GetBytes("Hello Furion"));HttpRequestBuilder.Post("https://furion.net/") .SetStreamContent(memoryStream, contentType: "text/plain");// 设置流并指定编码HttpRequestBuilder.Post("https://furion.net/") .SetStreamContent(memoryStream, contentEncoding: Encoding.UTF8);设置请求内容(Body)#
支持设置任意类型的请求内容。
HttpRequestBuilder.Post("https://furion.net/") .SetContent(null);HttpRequestBuilder.Post("https://furion.net/") .SetContent("furion", "text/plain");HttpRequestBuilder.Post("https://furion.net/") .SetContent(new { id = 1, name = "Furion"}); // 自动推断 Content-TypeHttpRequestBuilder.Post("https://furion.net/") .SetContent(new { id = 1, name = "Furion"}, "application/json");HttpRequestBuilder.Post("https://furion.net/") .SetContent(new MemoryStream(), "application/octet-stream");HttpRequestBuilder.Post("https://furion.net/") .SetContent(new byte[]{}, "application/octet-stream");HttpRequestBuilder.Post("https://furion.net/") .SetContent(new StringContent(...), "text/plain; charset=utf-8");HttpRequestBuilder.Post("https://furion.net/") .SetContent(new ReadOnlyMemory<byte>(...), "application/octet-stream");HttpRequestBuilder.Post("https://furion.net/") .SetContent(new MultipartContent(), "multipart/form-data");HttpRequestBuilder.Post("https://furion.net/") .SetContent(new MemoryStream(), "multipart/form-data", disposeResourcesOnRequestCompletion: true); // 配置请求结束后自动释放资源