繁体   English   中英

等待 client.GetStringAsync(url) ERREUR

[英]await client.GetStringAsync(url) ERREUR

 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(字符串位置))?

我接受任何信息。 先感谢您。

参考您的最后一条评论:

试试这个代码:

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);
        }
    }
}

结果:

结果

        bla...bla...bla...
        else if (value == "974 - LA REUNION") { string place = "974"; GetLieu(place); }
        else if (value == "976 - MAYOTTE") { string place = "976"; GetLieu(place); }

       // return;
    }




    public async Task<string> DownloadHomepage(string place)
    {
        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);

        var resultat = await client.GetStringAsync(url);
        Console.WriteLine(resultat);

        return (string)resultat;
    }




    async void GetLieu(string place)
        {

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


        string  result = await DownloadHomepage(place);

        var resultObjet = JObject.Parse(result);



        lieu = FindViewById<Spinner>(Resource.Id.lieu);
        playerslieu = new ArrayList();

        string count = resultObjet["count"].ToString();

        if (count == "1")
        {
            string libelle_commune1 = resultObjet["data"][0]["libelle_commune"].ToString();
            string code_station1 = resultObjet["data"][0]["code_station"].ToString();
            playerslieu.Add(code_station1 + " / " + libelle_commune1);
        }
        else if (count == "2")
        bla...bla...bla...

这样代码可以在调试中工作,但不能在发布中工作。 是否有错误或不足?

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM