Вызов API не работает в C#, когда он находится внутри функции нажатия кнопки - PullRequest
0 голосов
/ 28 апреля 2020

Я делаю вызов API для NewsAPI и заставил его работать в командной строке. Теперь я помещаю свое заявление в приложение Windows Form. У меня есть кнопка для работы (покажите мне окно сообщения при нажатии), но когда я помещаю код для вызова API в кнопку, код не знает, что делать, и просто застревает. Код не обрабатывает sh, но вместо этого он застревает при вызове API и просто не знает, что делать (и не застревает при вызове API, так как он делает это правильно в команде линия).

Вот мой код с удаленным ключом API:

using System;
using System.Windows.Forms;
using NewsAPI;
using NewsAPI.Models;
using NewsAPI.Constants;

namespace api_app
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void goButton_Click(object sender, EventArgs e)
        {
            var newsApiClient = new NewsApiClient("api key");
            string input = textBox1.Text;
            var articlesResponse = callAPI(input, newsApiClient);
            MessageBox.Show(input);
            if (articlesResponse.Status == Statuses.Ok)
            {
                MessageBox.Show("ok");
                foreach (var article in articlesResponse.Articles)
                {

                    // do stuff
                }
            }
            else MessageBox.Show("no");
        }
        private ArticlesResult callAPI(string input, NewsApiClient newsApiClient)
        {
            var articlesResponse = newsApiClient.GetEverything(new EverythingRequest
            {
                Q = input,
                SortBy = SortBys.Popularity,
                Language = Languages.EN,
                From = new DateTime(2020, 4, 27)
            });
            return articlesResponse;
        }
    }
}

А что касается "зависания", я go шаг за шагом использую отладчик Visual Studio. Код прекрасно работает в командной строке, но отладчик просто не может пройти мимо создания переменной articleResponse. Код отлично работает вне кнопки, но не в кнопке.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...