这是控制器内的操作
[HttpGet]
[Route("show_many")]
[ArrayInput("ids", Separator = ',')]
public async Task<HttpResponseMessage> GetByIds(int[] ids)
{
}
执行似乎未到达 ArrayInput 或 GetByIds 方法。我相信 int 数组作为参数导致了这个问题。当我执行基本的邮递员请求时,一切正常。
我通过 HttpClient 从 SDK 调用此端点。我还尝试在客户端标头中设置内容类型,例如
client.DefaultRequestHeaders.Accept.Add(new System.Net.Http.Headers.MediaTypeWithQualityHeaderValue("application/json"));
但这也没有帮助。
Uri 看起来像http://example.com/show_many?ids=1,2,3
这里有什么问题?
更新
我注意到这个错误发生在 Microsofot.AspNet.WebApi 5.2.7 中,但没有发生在 5.2.3 中。
此外,我注意到 client.DefaultRequestHeaders.Accept.Add(new System.Net.Http.Headers.MediaTypeWithQualityHeaderValue("application/json")); 仅创建 Accept 标头,而不创建 Content-Type。Content-type 应该是响应标头,但不幸的是,仅将 content-type 添加到请求标头实际上绕过了此问题(在邮递员中)。
幕布斯7119047
繁星coding
元芳怎么了
相关分类