亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

在 Web api 中使用數組作為參數時出現不支持的媒體類型錯誤?

在 Web api 中使用數組作為參數時出現不支持的媒體類型錯誤?

C#
30秒到達戰場 2023-06-25 13:48:38
這是控制器內的操作[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;


希望這可以幫助!


查看完整回答
反對 回復 2023-06-25
?
繁星coding

TA貢獻1797條經驗 獲得超4個贊

也許您的 Accept 標頭與 415 無關。請確保您正確地形成了 url。

您也可以將 [FromUri] 指定為參數,并像 一樣構建您的 uri?api?ids[]=1&ids[]=2。

查看完整回答
反對 回復 2023-06-25
?
元芳怎么了

TA貢獻1798條經驗 獲得超7個贊

問題是 [ArrayInput("ids", Separator = ',')] 及其與 WebApi 5.2.7 不兼容。



查看完整回答
反對 回復 2023-06-25
  • 3 回答
  • 0 關注
  • 167 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號