Reputation: 61463
I have two MVC websites. Site 1 has a controller that calls Site 2 with the following code
// If I remove this in the controller of site1, then execution continues....
var asdf = SharedTypes.Utilities.GetjsonStream("http://localhost:11541/UIDP/Details/a1?format=json");
string g = asdf.Result;
public class Utilities
{
public static async Task<string> GetjsonStream(string url)
{
HttpClient client = new HttpClient();
HttpResponseMessage response = await client.GetAsync(url);
string content = await response.Content.ReadAsStringAsync();
Debug.WriteLine("Content: " + content);
return content;
}
}
I'm able to directly browse the URL and see the JSON.. but what is the correct way to download JSON from my peer website in MVC?
Upvotes: 3
Views: 3348
Reputation: 56536
You should probably turn the controller method into an async
method and use await
to avoid deadlocks.
public async Task<ActionResult> MyActionAsync()
{
var asdf = SharedTypes.Utilities.GetjsonStream(someUrl);
string g = await asdf;
// return something
}
Microsoft's ASP.NET tutorial includes a page on async methods in ASP.NET MVC 4.
Upvotes: 2