C#后台请求第三方接口 传 file参数 Body类型是formdata
时间: 2024-03-05 21:49:30 浏览: 73
scrapy爬虫:scrapy.FormRequest中formdata参数详解
可以使用 `HttpClient` 类来发送 POST 请求,并且设置请求内容的类型为 `multipart/form-data`。以下是示例代码:
```c#
using System.Net.Http;
using System.IO;
public async Task<string> PostFile(string url, string filePath)
{
using (var httpClient = new HttpClient())
{
using (var form = new MultipartFormDataContent())
{
using (var fileStream = new FileStream(filePath, FileMode.Open))
{
using (var fileContent = new StreamContent(fileStream))
{
fileContent.Headers.ContentDisposition = new ContentDispositionHeaderValue("form-data")
{
Name = "file",
FileName = Path.GetFileName(filePath)
};
form.Add(fileContent);
}
}
var response = await httpClient.PostAsync(url, form);
if (response.IsSuccessStatusCode)
{
return await response.Content.ReadAsStringAsync();
}
else
{
return null;
}
}
}
}
```
其中 `url` 是需要请求的接口地址,`filePath` 是需要上传的文件路径。在方法内部,首先创建一个 `HttpClient` 实例,然后创建一个 `MultipartFormDataContent` 对象,用于设置请求内容。接着创建一个 `FileStream` 对象来读取文件内容,并将其封装为一个 `StreamContent` 对象,再设置其 `ContentDisposition` 属性,最后将其添加到 `MultipartFormDataContent` 对象中。最后发送 POST 请求,并返回响应内容。
阅读全文