我目前正在使用一个API,我必须发送文件,这要归功于http post协议。
使用postman,每件事都能正常工作,我可以发送一个可以包含多个文件的文件数组:
为此,我在我的C#应用程序中使用了HttpClient,但是我只能发送一个文件,而且我的主体必须包含表单数据主体,所以我创建了一个MultipartFormDataContent对象来发送我的文件。
public async Task<SubmitIdentityResults> SubmitIdentity(Guid companyId, DocumentTypes docType, SubmitIdentityParameters submitIdentityParameters)
{
try
{
var accesstoken = await _authTokenFromClientID.GetAccessToken();
var client = _httpClientFactory.CreateClient("MyClient");
client.DefaultRequestHeaders.Authorization = new System.Net.Http.Headers.AuthenticationHeaderValue("bearer", accesstoken);
MultipartFormDataContent form = new MultipartFormDataContent();
form.Add(new StreamContent(submitIdentityParameters.File!), "Files", submitIdentityParameters.FileName!);
var response = await client.PostAsync($"api/Document/{docType.ToString()}", form);
if (response.StatusCode == System.Net.HttpStatusCode.NoContent)
{
return default(SubmitIdentityResults)!;
}
return await response.Content.ReadFromJsonAsync<SubmitIdentityResults>() ?? default(SubmitIdentityResults)!;
}
catch (Exception)
{
throw;
}
}
有没有办法在c#中用httpclient和mulitipartformdata开发同样的行为?
1条答案
按热度按时间l0oc07j21#
我认为你应该传递一个数组
SubmitIdentityParameters[] submitIdentityParameters
,并像这样做。