- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
该代码在.NET Standard 2.0中运行。我有一个构造函数,该构造函数调用一个方法,该方法将调用如下所示的Azure函数:
public ChatViewModel(IChatService chatService)
{
Task.Run(async () =>
{
if (!chatService.IsConnected)
{
await chatService.CreateConnection();
}
});
}
方法是这样的:
public async Task CreateConnection()
{
await semaphoreSlim.WaitAsync();
if (httpClient == null)
{
httpClient = new HttpClient();
}
var result = await httpClient.GetStringAsync(uri);
var info = JsonConvert.DeserializeObject<Models.ConnectionInfo>(result);
//... some other code ...
semaphoreSlim.Release();
}
该代码在以下位置停止
await httpClient.GetStringAsync(uri)
static void Main(string[] args)
{
using (var httpClient = new HttpClient())
{
var a = httpClient.GetStringAsync(uri).GetAwaiter().GetResult();
}
}
该代码不起作用:
static void Main(string[] args)
{
Task.Run(async() => {
using (var httpClient = new HttpClient())
{
var a = await httpClient.GetStringAsync(uri);
}
});
}
最佳答案
我猜您的问题引起了,因为您可能在控制台应用程序(或Windows服务)中运行了它,而没有任何代码片段来使您的应用程序保持事件状态。
This code is not working:
static void Main(string[] args)
{
Task.Run(async() => {
using (var httpClient = new HttpClient())
{
var a = await httpClient.GetStringAsync(uri);
}
});
}
Task.Run
创建了一个后台线程,然后
Main
方法立即完成(并且这分别导致您的任务终止)。
Console.ReadKey()
方法的末尾添加
Main
使其保持事件状态,您会发现一切正常:
static void Main(string[] args)
{
Task.Run(async() => {
using (var httpClient = new HttpClient())
{
var a = await httpClient.GetStringAsync(uri);
}
});
Console.ReadKey();
}
Main
方法使用新的异步入口点:
static async Task Main(string[] args)
{
using (var httpClient = new HttpClient())
{
var a = await httpClient.GetStringAsync(uri);
}
}
关于c# - HttpClient.GetStringAsync未执行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57999839/
我有一种使用 Google API 翻译文本的工作方法,如下所示; public string TranslateText(string input, string sourceLanguage, s
我有(我的 url 列表大约有 1000 个 url),我想知道是否有更有效的调用来自同一站点的多个 url(已经更改 ServicePointManager.DefaultConnectionLim
新的 ASP.NET Web API HttpClient 一直给我一些奇怪的结果。这是我的代码: class Program { static async void Main(string[
using System.Net.Http; using Microsoft.VisualStudio.TestTools.UnitTesting; using System.Threading.
我正在尝试使用 GetStringAsync 方法访问我的 url,但调用挂起并且永远不会结束。当我在浏览器中检查它时它工作完美但不知何故在我的代码中它永远不会结束。我的代码: public bool
我正在使用 Windows Phone/Store 应用程序的新运行时开发 Windows 通用应用程序。我正在使用以下代码向服务器发送请求并期待返回 HTML 响应。但是,当我返回字符串并将其显示在
我认为 HttpClient 应该能够处理 301 错误代码,并重定向到正确的地址。但是对于以下地址 ( https://www.npr.org/templates/rss/podcast.php?i
我有一个控制台应用程序,用户输入一个字符串(一个数字,例如“1”),我根据输入的数字发出GET请求,并返回GET的字符串结果。 我想异步执行,因为一般来说,所有 I/O 操作都应该是异步的,所以我基本
我有以下内容,我尝试从服务器下载一个字符串: HttpClient client = new HttpClient(); var getResponsestring = await client.Ge
我有一个 Windows Phone 8 项目,我也开始使用 PCL(可移植类库)项目,因为我要构建一个 Win8 应用程序。 但是,在调用我的 api(在 Azure 中)时,我的 HttpClie
我是 C# 的新手,更不用说 Windows Phone 开发了:) 我正在尝试发送请求,获取 JSON 响应,但如果出现错误(例如 401),则能够告诉用户此类。这是我的代码: async Task
如果你有以下方法: public async Task GetTAsync(url) { return await httpClient.GetStringAsync(url); } publ
我真的是 Xamarin 开发的新手,我刚刚尝试使用 Xamarin.Forms 来使用共享代码开发 Android 和 iOS 应用程序,我在这里要做的是使用 Plugin.RestClient N
最近,我开发了一个WP8的应用程序,一开始一切正常。但是,从昨天晚上开始,我在尝试从 url 检索 RSS 数据 时遇到错误。 这是我用来获取数据的部分代码: try { HttpClient
在winform中,点击按钮调用此方法将链接内容下载为字符串,然后在文本框中显示字符串长度。这一切都是异步发生的。有没有办法同步执行此操作? 最佳答案 您可以通过获取.Result来创建任何任务 bl
我正在关注这个 blog post关于如何在 ASP.NET Web API 2 中使用批处理支持。服务器代码似乎可以工作并监听端口 12345。 当我运行客户端代码时,它到达这一行: dynam
我有以下代码 static void Main(string[] args) { string url = "http://www.google.com"; Conso
本文转载自微信公众号「汪宇杰博客」,作者汪宇杰。转载本文请联系汪宇杰博客公众号。 在 ASP.NET Core 单元测试中模拟HttpClient.GetStringAsync()
我正在创建一个新的 Windows 8.1 应用程序,只是为了测试我遇到的这个错误。该应用只有一个功能: private async void TestMethod() {
我是一名优秀的程序员,十分优秀!