post multipart/form-data in c# HttpClient 4.5

前端 未结 1 1866
长发绾君心
长发绾君心 2021-01-04 19:51

Problem

I am trying to post API to send data to API which calls my internal API service to send that data to other API i service. Entity contains property with fil

相关标签:
1条回答
  • 2021-01-04 20:00

    This method works for me. You can use form data and file

    public async Task<bool> Upload(FileUploadRequest model)
    {
        var httpClientHandler = new HttpClientHandler()
        {
          Proxy = new WebProxy("proxyAddress", "proxyPort")
          {
            Credentials = CredentialCache.DefaultCredentials
          },
          PreAuthenticate = true,
          UseDefaultCredentials = true
        };
    
    
        var fileContent = new StreamContent(model.File.OpenReadStream())
        {
           Headers =
           {
               ContentLength = model.File.Length,
               ContentType = new MediaTypeHeaderValue(model.File.ContentType)
           }
        };
    
        var formDataContent = new MultipartFormDataContent();
        formDataContent.Add(fileContent, "File", model.File.FileName);          // file
        formDataContent.Add(new StringContent("Test Full Name"), "FullName");   // form input
    
        using (var client = new HttpClient(handler: httpClientHandler, disposeHandler: true))
        {
            client.DefaultRequestHeaders.Add("Authorization", "Bearer " + tokenString);
    
            using (var res = await client.PostAsync("http://filestorageurl", formDataContent))
            {
               return res.IsSuccessStatusCode;
            }
        }
    }
    
    0 讨论(0)
提交回复
热议问题