簡體   English   中英

將請求發布到WebAPI2

[英]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-Typemultipart/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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM