![](/img/trans.png)
[英]JSONException when trying to parse the result of an HttpResponse
[英]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.