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。
希望对您有所帮助!
我正在处理一个 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。
希望对您有所帮助!