這是控制器內的操作[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 添加到請求標頭實際上繞過了此問題(在郵遞員中)。
3 回答

幕布斯7119047
TA貢獻1794條經驗 獲得超8個贊
我正在使用 .Net 3.1,并且遇到了同樣的問題。
解決辦法是這樣的
[HttpGet("foo")]
public IActionResult GetFoos([FromQuery] FooType[] fooTypes)
{
return Ok(Foo.One);
}
和queryString是api/myControler/foo?fooType=A&fooType=B;
希望這可以幫助!

繁星coding
TA貢獻1797條經驗 獲得超4個贊
也許您的 Accept 標頭與 415 無關。請確保您正確地形成了 url。
您也可以將 [FromUri] 指定為參數,并像 一樣構建您的 uri?api?ids[]=1&ids[]=2
。
- 3 回答
- 0 關注
- 167 瀏覽
添加回答
舉報
0/150
提交
取消