2014-01-04 9 views
1

Добрый вечер, Я новичок в C# и asp.net Я создал приложение MVC 4 WEB, и я использую aspx в качестве представления. Я пытаюсь вызвать удаленный веб-API и, к сожалению, я его не получаю, чтобы отображать данные на моем веб-сайте. Я создал один контроллер и внутри контроллера в методе Index() Я написал этот код:Вызов удаленного WEB API

public class CallAPIController : Controller 
{ 
    // 
    // GET: /CallAPI/ 

    public async Task<string> Index() 
    { 

     HttpClient client = new HttpClient(); 
     client.BaseAddress = new Uri("http://remoteWEBAPI/"); 

     // Add an Accept header for JSON format. 
     client.DefaultRequestHeaders.Accept.Add(
      new MediaTypeWithQualityHeaderValue("application/json")); 

     HttpResponseMessage response = client.GetAsync("api/data").Result; // Blocking call! 
     string json = await response.Content.ReadAsStringAsync(); 

      Debug.WriteLine("Content: " + json); 
      return json; 

    } 

} 

Я новичок в этой технологии, я попробовал много вещей, и я боролся с этим в течение последних 4 -5 часов. Я не знаю, как решить эту проблему. Не могли бы вы мне помочь? Я не думаю, что это должно быть очень сложно для кого-то знакомого специалиста ...

+0

В чем проблема **, с которой вы столкнулись? Это непростой вопрос. –

+0

Ваш код выглядит нормально, вы получаете исключение - response.IsSuccessStatusCode true? – SzabV

+0

Я внес некоторые изменения в свой код, и теперь у меня есть код выше. следующий шаг - как отобразить данные на моем веб-сайте (чтобы проверить, получаю ли я правильные данные из веб-API)? как я могу назвать этот метод из моего представления (aspx)? – user2327751

ответ

1

Предполагая, что ваш WebAPI принимает метод GET и возвращает строку JSON.

 WebClient client = new WebClient(); 
     client.Headers["Accept"] = "application/json"; 

     string returnedString = client.DownloadString(new Uri("http://yourwebapi.com/api/data")); 
+0

Добрый вечер kkocabiyik и спасибо, что ответили мне! :) код выше, где я должен его написать? внутри контроллера, вид? Я знаю, что этот вопрос раздражает, но я новичок в веб-приложении MVC. – user2327751

+0

вам нужно записать его в свой контроллер, где вы уже писали HttpClient – kkocabiyik

+0

большое спасибо за вашу помощь. и после этого, как я могу проверить, получаю ли я данные? что я должен написать в представлении, чтобы назвать этот метод? – user2327751

Смежные вопросы