asp. net core rest api и Uno-платформа wasm - PullRequest
0 голосов
/ 17 марта 2020

С клиента WASM платформы uno я пытаюсь вызвать asp. net core rest demo:

        [HttpGet]
        public IEnumerable<WeatherForecast> Get()
        {
            var rng = new Random();
            return Enumerable.Range(1, 5).Select(index => new WeatherForecast
            {
                Date = DateTime.Now.AddDays(index),
                TemperatureC = rng.Next(-20, 55),
                Summary = Summaries[rng.Next(Summaries.Length)]
            })
            .ToArray();
        }

Когда клиент wasm вызывает остальных, я получаю TypeError: Не удалось получить, но это прекрасно работает UWP и консольные приложения.

Клиент использует

 public async Task<string> RefreshDataAsync(string x)
        {
            var _client = new HttpClient();


            var response = await _client.GetStringAsync(@"http://localhost:58658/weatherforecast");
            return response;


        }

Поддерживает ли платформа WASM uno остальные вызовы API?

Ответы [ 2 ]

2 голосов
/ 18 марта 2020

Потребление веб-сервисов (при условии http / json) в платформе Uno работает так же, как и в любом приложении. NET. Используйте HttpClient

. Для WebAssembly вам необходимо создать WasmHttpHandler, а затем передать его как innerHandler для HttpClient.

#if __WASM__
            var innerHandler = new Uno.UI.Wasm.WasmHttpHandler();
#else
            var innerHandler = new HttpClientHandler();
#endif
            _httpClient = new HttpClient(innerHandler);

См. https://github.com/unoplatform/uado для примера использования HttpClient.

1 голос
/ 18 марта 2020

Оказывается, остальные API необходимы

 public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
        {
            app.UseCors(builder => builder
   .AllowAnyOrigin()
   .AllowAnyMethod()
   .AllowAnyHeader()
   );
...