当放置在异步方法中时,HttpClient get不起作用。
当放置在异步方法中时,HttpClient get不起作用。
这个问题已经有了答案:
我正试图在一个方法调用中使用它从源中获取一个字符串
HttpClient client = new HttpClient(); HttpResponseMessage response = await client.GetAsync(url); string responseBody = await response.Content.ReadAsStringAsync(); Console.Write(responseBody);
在方法和类之外使用它时,它可以正常工作,并且返回我要查找的正确的字符串。但是,当我将它放入我的类和方法中时,它就不起作用了。没有错误,只是什么也不返回。
为了参考,我使用的方法看起来像这样
public async void get(String test) { HttpClient client = new HttpClient(); HttpResponseMessage response = await client.GetAsync(test); string responseBody = await response.Content.ReadAsStringAsync(); Console.Write(responseBody); }
我不知道为什么一旦放进方法里就停止工作了。
admin 更改状态以发布 2023年5月22日
让你的方法返回一个任务,它就可以工作了。 \n
public async Task get(String test) { HttpClient client = new HttpClient(); HttpResponseMessage response = await client.GetAsync(test); string responseBody = await response.Content.ReadAsStringAsync(); Debug.Write(responseBody); } private async void btnTest_Click(object sender, EventArgs e) { try { Task t = get("/question/64566"); IEnumerabletasks = new[] { t }; await Task.WhenAll(tasks); } catch (Exception oException) { Debug.WriteLine(oException.ToString()); } }