在Xamarin PCL中食用PHP Web服务



我在php

中具有以下网络服务
function w_getLesVisites($idVisiteur)
{
    return json_encode($pdo->getLesVisiteur($idVisiteur));
}

在我的Xamarin表单PCL项目中,我有以下静止服务类,旨在消耗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;
        }
    }

我的问题是:如何使用ID调用PHP Web服务,以使其按预期返回JSON值?

要从Web服务中检索单个项目,只需以下创建另一种方法:

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正确。

,上述代码将起作用。

相关内容

  • 没有找到相关文章

最新更新