rest - Xamarin 形成 Http Web 请求
问题描述
我正在开发一个 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 ,我使用邮递员尝试了我的链接,它完美地返回了数据
“mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089”和“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);
}
}
这个方法当然会返回一个 JSON 字符串。得到它之后,你可以将它反序列化为你想要的任何东西。
如果抛出异常,则可能意味着身份验证问题(只需阅读说明contentString
)。如果它返回正确但值为空,那么可能您使用的 URL 与 Postman 测试不同,并且数据库上的路径值确实为空。
希望能帮助到你!
推荐阅读
- javascript - 如何对其中包含随机生成的数字的卡片列表进行排序?
- swift - swift中的MacOS动画延迟
- ios - 是否可以将应用程序作为 iOS OPEN Beta 发布?
- python - 在模板内切片 paginator.page_range
- docker - 如何从 Dockerfile 中的入口点发出超时命令
- html - Flutter 在返回 404 错误的有效 url 上获取请求
- expo - 如何在 Expo 上使用全局变量调用 API_URL
- html - Outlook 到 Gmail 间距问题
- java - 无法在我的 Android 应用程序中重命名和删除我的 pdf 文件
- ionic-framework - 离子电容器中LocalNotification中时间表的“at”和“on”选项之间的区别