首页 > 解决方案 > 如何在 C# 中使用 HttpClient 发送 json 文件?

问题描述

我正在尝试用邮递员发送一个 JSON 文件,它正在工作。但是当我试图通过它发送相同的内容时HttpClient它不起作用。

System.IO.File.WriteAllText(dirName + "\\importproduct.json", jsonitems);
var fileByteArray = File.ReadAllBytes(dirName + "\\importproduct.json");

using (var _client = new HttpClient())
{
    using (var content = new MultipartFormDataContent())
    {
        content.Add(new StreamContent(new MemoryStream(fileByteArray)), "file");
        var url = $"{firmInfo.ServiceUrl}/product/api/products/import";
        _client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", bearer_token.id_token);

        var response = _client.PostAsJsonAsync(url, content).Result;
        var result = response.Content.ReadAsStringAsync().Result;
    }
}

邮差: 在此处输入图像描述

标签: c#.net

解决方案


而不是使用 PostAsJsonAsync(); 您应该使用 PostAsync() 的方法;所以你的代码应该看起来像这样

using (var _client = new HttpClient())
{
    using (var content = new MultipartFormDataContent())
    {
        content.Add(new StreamContent(new MemoryStream(fileByteArray)), "file");
        var url = $"{firmInfo.ServiceUrl}/product/api/products/import";
        _client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", bearer_token.id_token);

        var response = _client.PostAsync(url, content).Result;
        var result = response.Content.ReadAsStringAsync().Result;
    }
}

推荐阅读