发送带有转换为HttpContent的 json 对象的发布请求,但结果是400错误的请求。
发件人
HttpClient _client = new HttpClient();
_client.DefaultRequestHeaders.Accept.Clear();
_client.DefaultRequestHeaders.Accept
.Add(new MediaTypeWithQualityHeaderValue("application/json"));
var jsonObject = new JObject(new JProperty("id", Id), new JProperty("image", face));
var strJson = JsonConvert.SerializeObject(jsonObject);
var response = _client.PostAsync(_settings.Uri,
new StringContent(strJson, Encoding.UTF8, "application/json"));
接收器
[HttpPost]
public IActionResult Post([FromBody]string value)
请问如何克服400错误的建议?
答案 0 :(得分:1)
您的通话中似乎有一个多余的括号
var response = _client.PostAsync(_settings.Uri, (new StringContent(strJson, Encoding.UTF8, "application/json"));
(新
尝试先将其删除。
欢呼
答案 1 :(得分:1)
您当前的代码发送了一个序列化为json
的对象,而ASP.NET Core
操作则期望序列化为json
的 string 。最简单的解决方案是重复数据序列化
var objectJson = JsonConvert.SerializeObject(jsonObject);
var stringJson = JsonConvert.SerializeObject(objectJson);
var response = _client.PostAsync(_settings.Uri, new StringContent(stringJson, Encoding.UTF8, "application/json"));