[英]Post request to WebAPI2
我使用WebAPI2編寫REST服務
我需要將書添加到數據庫。
我有此代碼模型:
public class Book
{
public int Id { get; set; }
public string Name { get; set; }
public string Author { get; set; }
public int Year { get; set; }
}
和控制器:
[HttpPost]
public void CreateBook([FromBody]Book book)
{
db.Books.Add(book);
db.SaveChanges();
}
我嘗試從郵遞員發送POST請求
但是我有這個錯誤
“消息”:“此資源不支持請求實體的媒體類型'multipart / form-data'。”,“ ExceptionMessage”:“沒有MediaTypeFormatter可用於從媒體類型為'的內容讀取'Book'類型的對象多部分/表單數據”。
我怎么能哭呢?
之所以收到此錯誤,是因為與請求一起發送的Content-Type
標頭是multipart/form-data
而不是application/json
。 發生這種情況是因為您在Postman中選擇了“表單數據”單選按鈕,該按鈕自動將Content-Type
為multipart/form-data
而不管是否手動輸入了標題。 (這已在文檔中進行了介紹 -請參閱“請求Content-Type
”部分中的“關於標頭的說明”,大約位於頁面的2/3下方。)嘗試選擇“原始”,並確保添加了Content-Type
標頭,其值為application/json
。 然后,在“正文”部分添加您的JSON。
{
"Id": 1234,
"Name": "A Book About Nothing",
"Author": "Joe Schmoe",
"Year": 1993
}
您必須向HttpConfiguration對象添加一個格式化程序,如果這是一個ASP.NET MVC項目,則可以在Register方法下的WebApiConfig.cs類中找到它。
public class WebApiConfig
{
public static void Register(HttpConfiguration config)
{
//Routes
config.Routes.MapHttpRoute(/// your routes);
//Formatters
config.Formatters.JsonFormatter.SupportedMediaTypes.Add(new MediaTypeHeaderValue("application/json"));
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.