Asp.net 通过HttpClient将文件(IfromFile)上载到webApi

Asp.net 通过HttpClient将文件(IfromFile)上载到webApi,asp.net,asp.net-web-api,asp.net-core-webapi,Asp.net,Asp.net Web Api,Asp.net Core Webapi,我需要帮助。我试图将一个文件(IFormFile)从Project Web保存或上传到Web Api,并通过httpClient使用Web Api。我收到以下错误:System.NotSupportedException:不支持Microsoft.AspNetCore.Http.IHeaderDictionary上的集合类型“Microsoft.AspNetCore.Http.IHeaderDictionary” NotSupportedException:不支持“Microsoft.AspN

我需要帮助。我试图将一个文件(IFormFile)从Project Web保存或上传到Web Api,并通过httpClient使用Web Api。我收到以下错误:System.NotSupportedException:不支持Microsoft.AspNetCore.Http.IHeaderDictionary上的集合类型“Microsoft.AspNetCore.Http.IHeaderDictionary”

NotSupportedException:不支持“Microsoft.AspNetCore.Http.IFormFile.Headers”上的集合类型“Microsoft.AspNetCore.Http.IHeaderDictionary”

您似乎正在序列化一个
FormFile
,这导致了上述问题

我试图将一个文件(IFormFile)从Project Web保存或上传到Web Api,并通过httpClient使用Web Api

联机公共异步任务([FromForm]candidate-addmodel)
{
var formContent=新的MultipartFormDataContent();
添加(新的StringContent(model.Senha),“Senha”);
Add(新的StringContent(System.Text.Json.JsonSerializer.Serialize(model.AnoLectvo)),“AnoLectvo”);
//...
//用于其他属性,如电子邮件、慷慨解囊等
//...
添加(新的StreamContent(model.Foto.OpenReadStream()),“Foto”,Path.GetFileName(model.Foto.FileName));
_httpClient.BaseAddress=新Uri(“https://localhost:xxxx/");
var response=wait_httpClient.PostAsync(“/api/xxx/candidaterad”,formContent);
if(响应。IsSuccessStatusCode)
{
//....
}
测试结果

NotSupportedException:不支持“Microsoft.AspNetCore.Http.IFormFile.Headers”上的集合类型“Microsoft.AspNetCore.Http.IHeaderDictionary”

您似乎正在序列化一个
FormFile
,这导致了上述问题

我试图将一个文件(IFormFile)从Project Web保存或上传到Web Api,并通过httpClient使用Web Api

联机公共异步任务([FromForm]candidate-addmodel)
{
var formContent=新的MultipartFormDataContent();
添加(新的StringContent(model.Senha),“Senha”);
Add(新的StringContent(System.Text.Json.JsonSerializer.Serialize(model.AnoLectvo)),“AnoLectvo”);
//...
//用于其他属性,如电子邮件、慷慨解囊等
//...
添加(新的StreamContent(model.Foto.OpenReadStream()),“Foto”,Path.GetFileName(model.Foto.FileName));
_httpClient.BaseAddress=新Uri(“https://localhost:xxxx/");
var response=wait_httpClient.PostAsync(“/api/xxx/candidaterad”,formContent);
if(响应。IsSuccessStatusCode)
{
//....
}
测试结果


尝试将
[JsonIgnore]
添加到您的
IFormFile
attributeHi@fortunatocapsule,有关于此案例的更新吗?尝试将
[JsonIgnore]
添加到您的
IFormFile
attributeHi@fortunatocapsule,有关于此案例的更新吗?
public async Task<IActionResult> Online([FromForm]CandidaturaAddModel model)
{

    var formContent = new MultipartFormDataContent();

    formContent.Add(new StringContent(model.Senha), "Senha");
    formContent.Add(new StringContent(System.Text.Json.JsonSerializer.Serialize(model.AnoLectvo)), "AnoLectvo");

    //...
    //for other properties, such as Email, Genero etc
    //...

    formContent.Add(new StreamContent(model.Foto.OpenReadStream()), "Foto", Path.GetFileName(model.Foto.FileName));

    _httpClient.BaseAddress = new Uri("https://localhost:xxxx/");

    var response = await _httpClient.PostAsync("/api/xxx/CandidaturaAdd", formContent);

    if (response.IsSuccessStatusCode)
    {
        //....
    }