[英]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.