Martin Kearn
Martin Kearn

Reputation: 2317

How to perform a request to a REST API in ASP.net 5.0 (MVC6)

I am writing an ASP.Net 5, MVC 6 application (also referred to as 'ASP.net vNext') with Visual Studio 2015 RC.

How do I perform a simple GET request to a REST API? In .net 4.5 I would have used HttpClient but that no longer seems to be available.

I have tried adding both the 'System.Net.Http' and 'Microsoft.Net.Http' packages as advised by Visual Studio, however I still get "The type or namespace name 'HttpClient' could not be found" which leads me to believe that HttpClient is not the right way to do this in ASP.net 5?

Can anyone advise on the correct way to make HTTP GET requests in ASP.net 5?

Update: My question is not a duplicate of 'HttpClient in ASP.NET 5.0 not found?' bercause the answer given is out of date and not applicable to the latest version of ASP.net 5.0

Upvotes: 0

Views: 1601

Answers (2)

Martin Kearn
Martin Kearn

Reputation: 2317

I found an answer which was in part from a post called ' HttpClient in ASP.NET 5.0 not found?', but there were some missing gaps because the technology has moved on a bit now. I have blogged the full solution here: http://blogs.msdn.com/b/martinkearn/archive/2015/06/17/using-httpclient-with-asp-net-5-0.aspx

Upvotes: 0

Magnus Karlsson
Magnus Karlsson

Reputation: 3579

Here is a solution for you, I just tried it out on the ASP.Net 5 Web site project template. Add the following method to HomeController

static async Task<string> DownloadPageAsync()
    {
        string page = "http://en.wikipedia.org/";

        using (HttpClient client = new HttpClient())
        using (HttpResponseMessage response = await client.GetAsync(page))
        using (HttpContent content = response.Content)
        {
            string result = await content.ReadAsStringAsync();

            return result.Substring(0, 50);
        }

    }

Then in the HomeControllers Index method

string test = DownloadPageAsync().Result;

And in project.json I added the following reference at dependencies

  "Microsoft.Net.Http": "2.2.22"

Upvotes: 4

Related Questions