C# JSON URL получить данные - PullRequest
0 голосов
/ 14 февраля 2020

Я новичок в системе. Net с C# Я хочу получить информацию с этого веб-сайта api: https://fn-api.glitch.me/api/aes из его json в C# строку

Пока у меня есть это

Я не знаю, как получить каждый элемент и куда поместить URL (я действительно новичок в этом).

Я хочу URL в строка:

public class Data
{
    public string build { get; set; }
    public string netCL { get; set; }
    public string manifestID { get; set; }
    public string aes { get; set; }
}

public class RootObject
{
    public Data data { get; set; }
}

Ответы [ 3 ]

1 голос
/ 14 февраля 2020

Хорошо, вот как вы об этом. Я показываю вам пример использования HttpClient для первого чтения содержимого из API, а затем десериализации его с использованием пакета Newtonsoft.

Класс HttpClient:

public class HttpClientFactory
{
  private string webServiceUrl = "https://fn-api.glitch.me/";

  public HttpClient CreateClient()
  {
    var client = new HttpClient();
    SetupClientDefaults(client);
    return client;
  }

  protected virtual void SetupClientDefaults(HttpClient client)
  {
    //This is global for all REST web service calls
    client.Timeout = TimeSpan.FromSeconds(60);
    client.BaseAddress = new Uri(webServiceUrl);
  }
}

Ваша модель класс:

public class Data
{
  public string build { get; set; }
  public string netCL { get; set; }
  public string manifestID { get; set; }
  public string aes { get; set; }
}

public class RootObject
{
  public Data data { get; set; }
}

Теперь вы можете вызвать этот класс и создать экземпляр HttpClient следующим образом:

public RootObject InvokeAPI()
{
  RootObject apiresponse = new RootObject();
  string result = string.Empty;
  HttpClientFactory clientFactory = new HttpClientFactory();
  var client = clientFactory.CreateClient();
  HttpResponseMessage response = client.GetAsync("api/aes").Result;
  if (response.IsSuccessStatusCode)
  {
    result = response.Content.ReadAsStringAsync().Result;
    apiresponse = JsonConvert.DeserializeObject<RootObject>(result);
  }
 return apiresponse;
}

Надеюсь, это поможет вам.

РЕДАКТИРОВАТЬ:

Согласно вашему коду, вам необходимо вызвать API на вашем Button клике:

    private void metroButton2_Click_1(object sender, EventArgs e)
    {
        //You need to invoke the API method !!!!
        var apiresponse=InvokeAPI();
        metroTextBox1.Text = apiresponse.data.aes;
    }

Обязательно ставьте блоки try-catch в своем коде для обработка ошибок.

0 голосов
/ 14 февраля 2020
0 голосов
/ 14 февраля 2020

Я бы рекомендовал использовать стороннюю библиотеку, такую ​​как RestSharp . Это даст вам клиент, с которым легко работать и который автоматически преобразует объекты.

В качестве альтернативы вы можете использовать WebClient и загрузить JSON. Использование что-то вроде Json. NET позволяет десериализовать JSON в объект.

...