c# - ExecuteAsync 在 Xamarin 中挂起,相同的代码在控制台应用程序中运行良好
问题描述
此功能适用于控制台应用程序:
private async Task TestAsync()
{
var client = new RestClient("https://weatherbit-v1-mashape.p.rapidapi.com/current?lang=en&lon=%3Crequired%3E&lat=%3Crequired%3E");
var request = new RestRequest(Method.GET);
request.AddHeader("x-rapidapi-host", "weatherbit-v1-mashape.p.rapidapi.com");
request.AddHeader("x-rapidapi-key", "d6c6-omitted");
IRestResponse response = await client.ExecuteAsync(request).ConfigureAwait(false);
return;
}
但是当在 xamarin 应用程序中运行时,此代码从未完成执行。任务被调用,但从未完成。与我尝试过的所有其他请求相同。
规格
Xamarin:4.6.0.1141+555-sha.ec64e9186-azdo.3888486
休息夏普:106.11.7
编辑:
这是更多代码:
class Program
{
static void Main(string[] args)
{
var x = TestAsync().Result;
int y = 0;
}
private static async Task<IRestResponse> TestAsync()
{
var client = new RestClient("https://weatherbit-v1-mashape.p.rapidapi.com/current?lang=en&lon=%3Crequired%3E&lat=%3Crequired%3E");
var request = new RestRequest(Method.GET);
request.AddHeader("x-rapidapi-host", "weatherbit-v1-mashape.p.rapidapi.com");
request.AddHeader("x-rapidapi-key", "d6c61a25cfmshfc1caea2f83287fp1e287cjsn695b47d979fb");
IRestResponse response = await client.ExecuteAsync(request);
return response;
}
}
这工作正常,但以下不起作用:
public partial class App : Application
{
public App()
{
InitializeComponent();
var x = TestAsync().Result;
int y = 0;
DependencyService.Register<MockDataStore>();
MainPage = new AppShell();
}
private static async Task<IRestResponse> TestAsync()
{
var client = new RestClient("https://weatherbit-v1-mashape.p.rapidapi.com/current?lang=en&lon=%3Crequired%3E&lat=%3Crequired%3E");
var request = new RestRequest(Method.GET);
request.AddHeader("x-rapidapi-host", "weatherbit-v1-mashape.p.rapidapi.com");
request.AddHeader("x-rapidapi-key", "d6c61a25cfmshfc1caea2f83287fp1e287cjsn695b47d979fb");
IRestResponse response = await client.ExecuteAsync(request);
return response;
}
protected override void OnStart()
{
}
protected override void OnSleep()
{
}
protected override void OnResume()
{
}
}
解决方案
推荐阅读
- linux - 执行脚本后获取的退出状态不正确
- sip - Freeswitch 在接收 RTCP 的同时发送空 RTP
- javascript - 如何在 Vue 中使用 Axios 传递查询
- ruby-on-rails - 限制 has_many 关联中的对象
- python - 我正在尝试在 Jupyter 中运行以下命令,但它显示形状错误
- php - 如何使用 laravel 获取依赖于大学列表的大学的下拉列表?
- c# - 如何比较不同工作表的两个元素
- javascript - ByteBuffer: readIString 抛出非法偏移错误
- javascript - 如何使用 jquery 或 javascript DOM 在 td 内的复选框中检查和未检查检测?
- javascript - 与 useEffect 一起使用时如何防止 useCallback 触发(并遵守 eslint-plugin-react-hooks)?