【发布时间】:2021-04-28 17:33:58
【问题描述】:
我有一个可以工作的 Web API。现在我正在为其编写集成测试,但是当我通过测试发出 PUT 请求时,[FromBody] 数据始终为空。 RequestData 是我创建的一个 protobuf 类型。
这是 API 方法的签名:
public async Task<Response> SomePutMethod(string id, [FromBody] RequestData data)
在我的测试中,我这样称呼它:
var request = new RequestData()
HttpContent content = new StringContent(JsonConvert.SerializeObject(request), Encoding.UTF8, "application/json");
content.Headers.ContentType = new MediaTypeHeaderValue("application/json");
_client.DefaultRequestHeaders.Accept.Clear();
_client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));
var putResult = await _client.PutAsync(uri + "?id=1", content);
我还尝试Jsonformatter.Default.Format 将 protobuf 对象转换为 json 字符串,但这也不起作用。
【问题讨论】:
-
嗨@an007,有关于这个案例的最新消息吗?
标签: c# .net http asp.net-core dotnet-httpclient