Как получить записи из внешнего веб-сервиса REST? - PullRequest
0 голосов
/ 07 ноября 2019

Мне нужно получить данные от веб-службы REST другой компании, и я никогда не делал этого. Я думаю, что я на правильном пути, но даже не уверен в этом. Я знаю, что мне не хватает полного URL (не знаю, где я должен его поместить), и я не знаю, что делать, если я успешно получу результаты json. Пожалуйста, помогите.

using System;
using System.Collections.Generic;
using System.Net;
using System.Net.Http;
using System.Net.Http.Headers;
using System.Threading.Tasks;

namespace GetData
{
    public class ReceiptHeader
    {
        private string _company;
        private string _warehouse;

        public ReceiptHeader()
        { }

        public string Company
        {
            get { return _company; }
            set { _company = value; }
        }
        public string Warehouse
        {
            get { return _warehouse; }
            set { _warehouse = value; }
        }
    }

    class Program
    {
        static HttpClient client = new HttpClient();

        static void ShowHeader(ReceiptHeader crh)
        {
            Console.WriteLine($"Company: {crh.Company}\tWarehouse: " +
                $"{crh.Warehouse}");
        }

        static async Task<ReceiptHeader> GetRHAsync(string path)
        {
            ReceiptHeader HeaderInfo = null;
            HttpResponseMessage response = await client.GetAsync(path);
            if (response.IsSuccessStatusCode)
            {
                HeaderInfo = await response.Content.ReadAsAsync<ReceiptHeader>();
            }
            return HeaderInfo;
        }

        static void Main()
        {
            RunAsync().GetAwaiter().GetResult();
        }

        static async Task RunAsync()
        {
            // Update port # in the following line.
            client.BaseAddress = new Uri("https://externalwebaddress.com/");
            client.DefaultRequestHeaders.Accept.Clear();
            client.DefaultRequestHeaders.Accept.Add(
                new MediaTypeWithQualityHeaderValue("application/json"));
            client.DefaultRequestHeaders.Authorization =
                new AuthenticationHeaderValue("Bearer", "TOKEN");

            try
            {
                // Get the header
                crh = await GetRHAsync(url.PathAndQuery);
                ShowHeader(crh);
            }
            catch (Exception e)
            {
                Console.WriteLine(e.Message);
            }

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