2017-05-23 4 views
-2

Ich habe asp.net mvc5 Projekt, das ich eine andere API mit JSON, aufrufen möchte und ich möchte diese API von meinem Controller Aktion aufrufen, weil ich etwas Hashing dort tun müssen ,So rufen Sie API in asp.net MVC5

Es ist mein erstes Mal, dies zu tun, und ich muss die Anfrage in JSON senden und auch Antworten in JSON all das mit der Controller-Aktion.

+0

Meinten Sie, Wie ruft man eine andere WEB API in asp.net mvc5 von Ihrem Controller auf? –

+0

Es gibt viele Hinweise im Internet, die erklären, wie Sie dies erreichen können. verweisen Sie zum Beispiel https://levelnis.co.uk/blog/how-do-you-post-to-a-web-api-controller-from-an-mvc-controller –

+0

Ja, um Remote-API von meinem zu rufen Projekt. – Abdibrahim

Antwort

1

Wenn Ihre Methode ist POST:

   string uri = "yourdomain/api/controller/method; 

       var client = new HttpClient(); 
       var values = new Dictionary<string, string>() 
        { 
         {"username", SecurityHelper.EncryptQueryString(username)}, 
         {"password", SecurityHelper.EncryptQueryString(password)}, 
        }; 
       var content = new FormUrlEncodedContent(values); 
       var response = await client.PostAsync(uri, content); 
       response.EnsureSuccessStatusCode(); 

Wenn Ihre Methode GET ist:

    string url = "domain/api/controller/method?parameter1=param"; 
        using (var client = new HttpClient()) 
        { 
         HttpResponseMessage response = await client.GetAsync(url).ConfigureAwait(false); 
         if (response.IsSuccessStatusCode) 
         { 
          var jsonResponse = response.Content.ReadAsStringAsync().Result; 
          bool data = JsonConvert.DeserializeObject<bool>(jsonResponse); 
          return data; 
         } 
        } 
0
 var client = new HttpClient(); 
     var payload = @"{ 
      'CPU': 'Intel', 
      'PSU': '500W', 
      'Drives': [ 
      'DVD read/writer', 
      '500 gigabyte hard drive', 
      '200 gigabype hard drive' 
      ] 
     }"; 

     var content = new StringContent(payload, Encoding.UTF8, "application/json"); 
     var url = {APIEndpoint}; 
     var result = await client.PostAsync(url, content); 

Antwort Parsing mit JSON.NET:

JObject joResponse = JObject.Parse(result);