[英]What should TResult be when using public async Task to return json response from API HTTP Post
帳戶服務:
public async Task<string> PostRegistrationToApi(NameValueCollection form)
try
{
string str = await url.WithHeaders(new { Accept = "application /json", User_Agent = "Flurl" }).PostJsonAsync(myDictionary).ReceiveJson();
return str;
}
這是界面中的樣子:
public interface IAccountService
{
Task<string> PostRegistrationToApi(NameValueCollection form);
這是我的控制器視圖:
string str = await _accountService.PostRegistrationToApi(myform);
return RedirectToAction("Register");
這是我收到的錯誤消息:
無法將類型'System.Dynamic.ExpandoObject'隱式轉換為'string'
我不知道如何解決此錯誤。 有人可以告訴我此錯誤消息的含義以及如何解決嗎? 起初,我以為是TResult類型問題,但即使將變量更改為字符串類型,也似乎與TResult一致。 我仍然遇到相同的錯誤。 謝謝!
您收到該錯誤是因為ReceiveJson
返回的是dynamic
而不是字符串。 這使您可以將結果作為具有屬性的對象使用,而不必聲明匹配的類。 這對於快速且骯臟的JSON響應非常方便,因為您知道響應的形狀不會改變,但是您放棄了編譯時類型檢查,因此在大多數情況下,我建議創建匹配的類並使用RecieveJson<T>
。
如果您確實想找回字符串,則可以改用ReceiveString
。 如果您只是將響應轉發到其他內容,或者將其轉儲到日志或其他有用的內容中。 但是,如果您需要以某種方式處理 JSON結果,我建議您使用ReceiveJson
或ReceiveJson<T>
以便您可以將結果作為C#對象使用。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.