2 回答

TA貢獻1921條經驗 獲得超9個贊
我收到 System.Net.WebException:“遠程服務器返回錯誤:(415) 不支持的媒體類型?!?/strong>
當您使用 時[FromBody]
,將使用Content-Type
標頭來確定如何解析請求正文。未指定時Content-Type
,模型綁定進程不知道如何使用主體,因此返回 415。
我收到System.Net.WebException:“遠程服務器返回錯誤:(400) 錯誤請求。”
通過將Content-Type
標頭設置為application/json
,您指示模型綁定過程將數據視為 JSON,但ABC
它本身不是有效的 JSON。如果您只想發送一個 JSON 編碼的字符串,您也可以將值用引號引起來,如下所示:
client.UploadString("https://localhost:44345/api/Test", "\"ABC\"");
"ABC"
是一個有效的 JSON 字符串,將被您的 ASP.NET Core API 接受。

TA貢獻1803條經驗 獲得超6個贊
簡單的解決方案:
Content-type調用 API 時在標頭中指定,
WebClient client = new WebClient();
client.Headers.Add("Content-Type", "text/json");
client.UploadString("https://localhost:44345/api/Test", "\"ABC\"");
編輯:
不要使用[From_Body]屬性,因為它具有糟糕的錯誤處理能力,請參見此處。
如果請求正文有任何無效輸入(語法錯誤、不受支持的輸入),那么它將拋出錯誤請求和不受支持的內容400。415出于同樣的原因,如果它不理解格式,它可能會將 null 作為來自請求正文的輸入。
因此,刪除該屬性并嘗試以純格式上傳字符串,因為它只接受 String 并且您在發出請求時不需要指定 Content-Type 屬性。
[HttpPost]
public void Post(string value)
{
}
并像您在原始帖子中的稱呼一樣稱呼它。
WebClient client = new WebClient();
client.UploadString("https://localhost:44345/api/Test", "ABC");
- 2 回答
- 0 關注
- 335 瀏覽
添加回答
舉報