![](/img/trans.png)
[英]iSeries + ASP.NET web application - Do I need any special license for iSeries?
[英]Do I need to do something special in the ASP.NET MVC app to read a Json response from a Web API 2 application?
我需要在ASP.NET MVC應用程序中定義一些特別的東西來讀取來自ASP.NET Web API的傳入響應嗎?
從我的MVC應用程序,我使用System.Net.HttpClient
向ASP.NET Web API發出請求。 API接收請求並對其進行處理,然后返回有效響應。 但是,MVC應用程序似乎從未得到響應。 我在發出請求的線上有一個斷點。 執行該行后,控制流再也不會回來。 MVC應用程序很長一段時間后一直保持等待和超時。
但是,我可以確認API返回了有效的Json響應。 我嘗試在Chrome Postman中編寫此請求,並看到API返回了有效的響應。
這是我的MVC應用程序中向Web API發出請求的代碼:
public async Task<R> PostAsJsonAsync<T, R>(string uri, T value)
{
using (var client = new HttpClient())
{
client.BaseAddress = new Uri(_baseUri);
client.DefaultRequestHeaders.Accept.Clear();
client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));
var response = await client.PostAsJsonAsync(uri, value);
if (response.IsSuccessStatusCode) return await response.Content.ReadAsAsync<R>();
else return default(R);
}
}
過去,即在Web API 2之前,我曾讓MVC應用程序與Web API毫無問題地對話。 我不知道我是否缺少Web API 2中引入的內容。
我覺得你陷入僵局。 您在任何地方都使用.Result
嗎? 您應該一直使用async
。 我的意思是您的MVC操作方法也應該是async
方法,並且應該await
而不使用.Result
。 請閱讀Stephen Cleary的這篇日志,以獲取更多信息。 http://blog.stephencleary.com/2012/07/dont-block-on-async-code.html
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.