【问题标题】:await client.GetStringAsync(url) ERREUR等待 client.GetStringAsync(url) ERREUR
【发布时间】:2020-12-12 21:22:06
【问题描述】:
 async void GetLieu(string place)
           {

            ShowProgressDialogue("Récupération des données...");

            string MonURL = "https://hubeau.eaufrance.fr/api/v1/hydrometrie/referentiel/stations";
            string url = MonURL + "?code_departement=" + place;
           
            var handler = new HttpClientHandler();
            HttpClient client = new HttpClient(handler);
            string result = await client.GetStringAsync(url);

            Console.WriteLine(result);
            var resultObjet = JObject.Parse(result);

你好, 我有一个我无法解决的问题。 我无法调整我的代码以防止它在以下级别崩溃:

等待客户端.GetStringAsync(url);

不修改会有什么解决方案:async void GetLieu (string place)) ?

我接受任何信息。 提前谢谢你。

【问题讨论】:

  • 欢迎来到 Stack Overflow。请通过tour 了解 Stack Overflow 的工作原理,并阅读How to Ask 了解如何提高问题的质量。然后edit 你的问题包含你作为minimal reproducible example 的完整源代码,其他人可以编译和测试。包括您收到的错误/异常消息和/或您遇到的问题。
  • 问题解决了吗?
  • 我的问题将“void '更改为'Task '我的“GetLieu (place)”有问题,它不再有效。我是这种语言的新手,但我认为...
  • @michael ,我的回答已经根据你上次的评论更新了

标签: c# httpclient httpclienthandler


【解决方案1】:

参考您的最后评论:

试试这个代码:

using System;
using System.Net.Http;
using System.Threading.Tasks;

namespace StackOverflowWebClientQuestionAnswer
{
    public class ExternalService
    {
        public async Task<string> DownloadHomepage(string place)
        {
            string MonURL = "https://hubeau.eaufrance.fr/api/v1/hydrometrie/referentiel/stations";
            string url = MonURL + "?code_departement=" + place;

            using (var httpClient = new HttpClient())
            {
                httpClient.DefaultRequestHeaders.Add("User-Agent", "Mozilla/5.0 (Windows NT 6.1; Win64; x64) " +
                                                    "AppleWebKit/537.36 (KHTML, like Gecko) " +
                                                    "Chrome/58.0.3029.110 Safari/537.36");

                var resultat = await httpClient.GetStringAsync(new Uri(url));

                return resultat;
            }
        }
    }
}

怎么称呼它(例子)?!

using Microsoft.AspNetCore.Mvc;
using System.Threading.Tasks;

namespace StackOverflowWebClientQuestionAnswer.Controllers
{
    [ApiController]
    [Route("[controller]")]
    public class Resultat : ControllerBase
    {
        [HttpGet]
        public async Task<IActionResult> GetResultat()
        {
            ExternalService external = new ExternalService();

            string resultat = await external.DownloadHomepage("971");

            return Ok(resultat);
        }
    }
}

结果:

【讨论】:

  • 原理好但是不行,有没有一点办法?
  • @michael 怎么没用,请解释一下,如果提供了错误信息,请提及。
  • 嗨,我已经更改了我的代码,但它仍然无法正常工作。如果你看到问题,你能告诉我吗?一旦我点击激活,应用程序就会关闭。
  • 嗨@michael,我的回答已根据您上次的评论更新
  • 现在它的工作我也在“代码压缩”的配置中删除了它是如何工作的。非常感谢您的帮助以及您帮助我所花费的时间!!!我必须承认你在这个领域非常强大......谢谢你
猜你喜欢
  • 1970-01-01
  • 2014-06-07
  • 2021-09-11
  • 1970-01-01
  • 1970-01-01
  • 2021-08-19
  • 2018-12-09
  • 1970-01-01
  • 2016-09-30
相关资源
最近更新 更多