Call ASP.NET Web API from code-behind

asp.net, asp.net-web-api, getjson, webforms

Solution

If you must call the web service itself, you can try using `HttpClient` as described by Henrik Neilsen.

Updated HTTPClient Samples

A basic example:

// Create an HttpClient instance 
HttpClient client = new HttpClient(); 

// Send a request asynchronously continue when complete 
client.GetAsync(_address).ContinueWith( 
    (requestTask) => 
    { 
        // Get HTTP response from completed task. 
        HttpResponseMessage response = requestTask.Result; 

       // Check that response was successful or throw exception 
        response.EnsureSuccessStatusCode(); 

        // Read response asynchronously as JsonValue
        response.Content.ReadAsAsync<JsonArray>().ContinueWith( 
                    (readTask) => 
                    { 
                        var result = readTask.Result
                        //Do something with the result                   
                    }); 
    }); 

Problem

How would I call an ASP.NET Web API directly from code-behind? Or should I be calling my javascript function that calls the getJSON method from code-behind? I usually have something like: ``` function createFile() { $.getJSON("api/file/createfile", function (data) { $("#Result").append('Success!'); }); } ``` Any pointers appreciated. TIA. *I'm using WebForms.

Original source