Riot API, универсальное приложение для Windows: при синтаксическом анализе обнаружен неожиданный символ: h. Путь '', строка 0, позиция 0

Я пытаюсь проверить концепцию универсального приложения Windows, вызывая и отображая данные Riot API. id хотел бы ввести имя, нажмите "Отправить", а затем отобразятся результаты ниже.

** Проблемы: ** При анализе значения обнаружен неожиданный символ: h. Путь '', строка 0, позиция 0

И: В этом асинхронном методе отсутствуют операторы ожидания, и он будет выполняться синхронно. Рассмотрите возможность использования оператора await для ожидания неблокирующих вызовов API или await Task.Run

Код: общедоступный запечатанный частичный класс MainPage: Page {

    public MainPage()
    {
        this.InitializeComponent();
    }

    private void inputButton_Click(object sender, RoutedEventArgs e)
    {
        GetSumInfo(nameInput.Text).Wait();
    }
    private void nameInput_TextChanged(object sender, TextChangedEventArgs e)
    {

    }

    public async Task GetSumInfo(string nameInput)
    {


        using (var handler = new HttpClientHandler())
        using (var client = new System.Net.Http.HttpClient(handler))
        {
            var RitoKey = "FakeKEY";
            var iwantthisplayer = nameInput; 

            client.BaseAddress = new Uri("https://na.api.pvp.net/api/lol/na/v1.4/summoner/by-name/");
            client.DefaultRequestHeaders.Accept.Clear();
            client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));
            var CompleteUrl = ("https://na.api.pvp.net/api/lol/na/v1.4/summoner/by-name/" + iwantthisplayer + "?api_key=" + RitoKey);
            //var response = await client.GetAsync(CompleteUrl);
            TbOutput.Text = JsonConvert.DeserializeObject<dynamic>(CompleteUrl);



            //TbOutput.Text = JsonConvert.DeserializeObject<dynamic>(jsoncall);
            //TbOutput.Text = source;
        }

    }
    private void TbOutput_SelectionChanged(object sender, RoutedEventArgs e)
    {

    }
}

person Strom Reedy    schedule 10.04.2016    source источник


Ответы (1)


Для этой части вопроса [И: в этом асинхронном методе отсутствуют операторы ожидания, и он будет выполняться синхронно. Подумайте об использовании оператора await для ожидания неблокирующих вызовов API или await Task.Run], мой ответ - изменить эту часть кода:

async private void inputButton_Click(object sender, RoutedEventArgs e)

    {
        await GetSumInfo(nameInput.Text);
    }
person Community    schedule 10.04.2016