c# - 如何在 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;
}
}
解决方案
而不是使用 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;
}
}
推荐阅读
- r - 使用两个 for 循环和 if 语句在现有数据框中填充新列
- javascript - 使用嵌套的 for 循环比较两个对象的值并返回修改后的对象数组
- 3d - 在搅拌机的 3d 网格上使用布尔运算,如饼干切割器
- javascript - 我需要有关如何设置网络服务器的建议
- javascript - 如何使自定义音频播放器适用于多个音频?
- r - 根据 data.table 中按组增加值过滤出多行
- javascript - 在客户端中止 XHR 请求时会发生什么服务器端?
- php - PHP Math 在将负数与零相乘时中断
- icons - 2020 年我应该为我的网站创建哪些图标?
- android - 重复类 com.google.android.gms.location.places.zza