簡體   English   中英

嘗試解析WebAPI中的ReadAsFormDataAsync結果時,沒有MediaTypeFormatter錯誤

[英]No MediaTypeFormatter error when trying to parse ReadAsFormDataAsync result in WebAPI

我創建了一個WebAPI項目,以幫助從TinCan學習課程中捕獲語句,但是在檢索任何請求有效負載詳細信息時我遇到了極大的困難。 在此有效負載內,我傳遞了我嘗試捕獲的整個語句,但是嘗試使用以下命令進行讀取:

var test = Request.Content.ReadAsFormDataAsync().Result.ToString();

我收到以下錯誤消息:

沒有MediaTypeFormatter可用於從媒體類型為'application / json'的內容讀取'FormDataCollection'類型的對象。

我曾嘗試將結果對象轉換為JSON以克服此問題,但它沒有任何用處。 我需要在配置中的某處配置json嗎? 我嘗試添加

var appXmlType = config.Formatters.XmlFormatter.SupportedMediaTypes.FirstOrDefault(t => t.MediaType == "application/xml");
        config.Formatters.XmlFormatter.SupportedMediaTypes.Remove(appXmlType);

並且:

var jsonFormatter = config.Formatters.JsonFormatter;
        config.Formatters.Insert(0, jsonFormatter);

到我的WebApiConfig.cs文件,在另一個有關如何返回json的問題中回答,但我似乎無法傳遞此錯誤。 我也將config.formatter設置為接受application / json,但這也沒有用

控制器代碼

public void Put([FromBody]string statementId)
    {   
        var test = Request.Content.ReadAsFormDataAsync().Result;

        System.Diagnostics.EventLog.WriteEntry("Application", "/xAPI/PUT has been called", System.Diagnostics.EventLogEntryType.Error);
    }

根據您提供的錯誤消息,請求內容似乎在application/json ReadAsFormDataAsync()只能讀取application/x-www-form-urlencoded類型的內容。

在這種情況下,你可以使用ReadAsAsync<>如果你有你想反序列化定義,或者干脆用型ReadAsStringAsync<>如果你只是想閱讀的內容作為一個string

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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