2016-05-12 2 views
0

Я создал REST API, и я хочу использовать его, используя приложение Xamarin.iOS. В основном я хочу вызвать API из приложения Xamarin, отправив некоторые аргументы в одну из функций моего API.Как использовать REST api в Xamarin.iOS?

Я пробовал ресурсы, доступные на официальном сайте Xamarin, но я новичок, поэтому я не могу понять, как это было сделано. REST API размещается локально в сети, которую я использую. Он не размещается на статическом IP-адресе. Прошу вас посоветуйте.

+0

это очень общая тема. Xamarin имеет хороший обзор здесь: https://developer.xamarin.com/guides/xamarin-forms/web-services/consuming/rest/. Если у вас возникли проблемы после этого, было бы полезно, если бы вы задали конкретный вопрос о части, которую вы не понимаете. – Jason

+0

Используйте плагин RestSharp, вы можете получить его в виде хранилища плагинов Xamarin. Я использую его лично и отлично справляется с работой. – qasimalbaqali

ответ

0

Я бы порекомендовал Refit, вы можете установить его в качестве пакета NuGet. Его причудливый прост в использовании.

Refit позволяет нам определить интерфейс, описывающий API, который мы вызываем, и фреймворк Refit обрабатывает вызов службы и десериализацию возврата.

Посмотрите на это замечательное сообщение в блоге о том, как настроить его и другие пакеты, которые могут вам помочь. http://arteksoftware.com/resilient-network-services-with-xamarin/

Раньше я использовал RestSharp, но Refit намного легче запустить.

0

Вам не нужен модный плагин, если вы просто хотите поразить веб-конечные точки. Я просто использую базовый API WebRequest.

var request = WebRequest.CreateHttp(YOUR_URL_HERE); 
request.Method = "GET"; 
request.ContentType = "application/JSON"; 
request.BeginGetResponse(ResponseComplete, request); 

... и тогда ваш метод ответ может быть что-то вдоль линий ...

protected void ResponseComplete(IAsyncResult result) 
{ 
    try 
    { 
     var request = result.AsyncState as HttpWebRequest; 
     if (request != null) 
     { 
      Debug.WriteLine("Completed query: " + request.RequestUri); 
      using (var streamReader = new StreamReader(response.GetResponseStream())) 
      { 
       var result = streamReader.ReadToEnd(); 
       Debug.WriteLine("Query Result: " + result); 
      } 
     } 
    } 
} 

... и если вы хотите опубликовать данные, которые вы можете добавить request.BeginGetRequestStream(PostData, request); перед тем request.BeginGetResponse(ResponseComplete, request); и сделать ваш метод обработки GetRequestStream что-то в соответствии с ...

protected void PostData(IAsyncResult result) 
{ 
    var request = result.AsyncState as HttpWebRequest; 
    if (request != null) 
    { 
     using (var postStream = request.EndGetRequestStream(result)) 
     { 
      var json = JsonConvert.SerializeObject(DATA_TO_POST); 
      Debug.WriteLine("Posting data: " + json); 
      var byteArray = Encoding.UTF8.GetBytes(json); 
      postStream.Write(byteArray, 0, byteArray.Length); 
     } 
    } 
} 
Смежные вопросы