1

我需要在ASP.NET MVC應用程序中定義一些特殊的東西來讀取來自ASP.NET Web API的傳入響應嗎?我是否需要在ASP.NET MVC應用程序中做一些特殊的事情來從Web API 2應用程序讀取Json響應?

從我的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); 
    } 
} 

在過去,網絡API 2,我已經MVC應用程序跟在Web API沒有任何前即問題。我不知道我是否缺少已經在Web API 2中引入的東西。

+0

您確定您的WebAPI應用程序收到此請求嗎?如果您說超時,可能是您的網址存在問題。您可以附加到您的WebAPI應用程序並在目標方法中設置斷點嗎?它是否被擊中? – Eadel

+0

是的,Web API接收請求並正確處理它並返回有效的JSON響應。正如問題中提到的那樣,我設置了斷點並且也看到了Chrome郵遞員的迴應。 –

+0

事實上,您似乎一切正常......我會仔細檢查您的服務是否收到您的請求。您可以爲Chrome郵遞員提供正確的網址,而在此處您可以使用另一個代碼。例如,您也可以嘗試Fiddler或Wireshark,並查看您請求的內容以及響應中的內容。 – Eadel

回答

相關問題