HttpClient 发送multipart/form-data
时间: 2023-08-03 20:04:18 浏览: 134
发送 `multipart/form-data` 格式的请求,需要使用 `MultipartFormDataContent` 类来构建请求内容。以下是一个示例:
```csharp
using System.Net.Http;
using System.IO;
var client = new HttpClient();
var content = new MultipartFormDataContent();
content.Add(new StringContent("value1"), "key1");
content.Add(new StringContent("value2"), "key2");
var imageContent = new ByteArrayContent(File.ReadAllBytes("image.jpg"));
imageContent.Headers.ContentType = new MediaTypeHeaderValue("image/jpeg");
content.Add(imageContent, "image", "image.jpg");
var response = await client.PostAsync("http://www.example.com", content);
var responseContent = await response.Content.ReadAsStringAsync();
```
这个示例中,我们首先创建了一个 `HttpClient` 实例,然后创建了一个 `MultipartFormDataContent` 实例,通过 `Add` 方法添加了两个文本字段和一个图片文件。最后,我们使用 `PostAsync` 方法发送 POST 请求,并获取响应内容。
需要注意的是,我们在添加图片文件时,使用了 `ByteArrayContent` 类来创建一个流内容,并设置了 `Content-Type` 头。如果你需要添加其他类型的文件,可以使用 `StreamContent` 类或 `StringContent` 类。
阅读全文