Xamarin 表单 Http Web 请求

Xamarin forms Http web request

我正在处理一个 Xamarin.Forms 项目,在该项目中我必须从 Json URL 获取数据,我正在使用此代码:

 string URL = "https://example.com/.json";
   var httprequest = (HttpWebRequest)WebRequest.Create(URL);
   var response = (HttpWebResponse)httprequest.GetResponse();
   var stream = new StreamReader(response.GetResponseStream()).ReadToEnd();
   var firebasevariable = JObject.Parse(stream);
   string dist = firebasevariable["distance"].ToObject<string>();

但是 "dist" 值一直返回 NULL!我导入了 System.Net.Http 和 Newtonsoft.Json 库 我也收到了这个警告,但我不知道这是否是我得到 NULL 的原因,我使用邮递员尝试了我的 link 并且它 returns 数据完美

There was a conflict between "mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" and "mscorlib, Version=2.0.5.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e"

我也在使用 Firebase,这很有效:

async Task<string> Get(string url)
{
    using(var requestMessage = new HttpRequestMessage(HttpMethod.Get, url))
    {
        // Client is a static HttpClient property. 
        // It's recommended to use a single instance in all your requests, but create it in this method if you want.
        var response = await Client.SendAsync(requestMessage);

        var contentString = await response.Content.ReadAsStringAsync();

        if (response.IsSuccessStatusCode)
            return contentString;
        else
            throw new Exception(contentString);
    }
}

这个方法当然会 return 一个 JSON 字符串。拿到之后,你可以反序列化成你想要的任何东西。

如果抛出异常,可能意味着身份验证问题(请阅读 contentString 所说的内容)。如果 returns 正确但值为 null,那么可能您使用的 URL 与 Postman 测试不同,并且数据库中的路径值确实为 null。

希望对您有所帮助!