веб-сервисы — использование php веб-сервиса в Xamarin PCL

У меня есть следующий веб-сервис в php

function w_getLesVisites($idVisiteur)
{
return json_encode($pdo->getLesVisiteur($idVisiteur));
}

В моем проекте PCL формы Xamarin у меня есть следующий класс RestService, целью которого является использование phpwebservice и получение данных из моей локальной базы данных MySQL.

public class RestService
{
HttpClient client;
public List<Visite> L_Visites { get; private set; }

public RestService()
{
client = new HttpClient();
client.MaxResponseContentBufferSize = 25600;
}

public async Task<List<Visite>> RefreshDataAsync()
{string restUrl = "localhost/ppe3JoJuAd/gsbAppliFraisV2/w_visite";
var uri = new Uri(string.Format(restUrl, string.Empty));

try
{
var response = await client.GetAsync(uri);
if(response.IsSuccessStatusCode)
{
var content = await response.Content.ReadAsStringAsync();
L_Visites = JsonConvert.DeserializeObject<List<Visite>>(content);
}
}
catch (Exception ex)
{
Debug.WriteLine(@"ERROR {0}", ex.Message);
}
return L_Visites;
}
}

Мой вопрос: как я могу вызвать php webservice с идентификатором так, чтобы он возвращал значение json, как и ожидалось?

0

Решение

Чтобы извлечь отдельный элемент из веб-службы, просто создайте другой метод, как показано ниже:

public async Task<Visite> GetSingleDataAsync(int id)
{
//append the id to your url string
string restUrl = "localhost/ppe3JoJuAd/gsbAppliFraisV2/w_visite/" + id;
var uri = new Uri(string.Format(restUrl, string.Empty));

//create new instance of your Visite object
var data = new Visite();

try
{
var response = await client.GetAsync(uri);
if(response.IsSuccessStatusCode)
{
var content = await response.Content.ReadAsStringAsync();
data = JsonConvert.DeserializeObject<Visite>(content); //do not use list here
}
}
catch (Exception ex)
{
Debug.WriteLine(@"ERROR {0}", ex.Message);
}
return data;
}

Как предлагает @Jason, ваш формат URL может отличаться в зависимости от того, как реализован ваш сервис. Но приведенный выше код будет работать до тех пор, пока ваш URL-адрес правильный.

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]