使用HttpClient消費ASP.NET Web API服務

來源:互聯網
上載者:User

標籤:

本篇體驗使用HttpClient消費ASP.NET Web API服務,例子比較簡單。

 

依次點擊"檔案","建立","項目"。

 

選擇"ASP.NET Web API"項目。

 

在Models檔案夾下建立Person.cs類。

 

    public class Person
    {
        public int Id { get; set; }
        public string FirstName { get; set; }
        public string LastName { get; set; }
    }

 

在Controllers檔案夾下建立一個空的PersonController。

 

    public class PersonController : ApiController
    {
    }

 

建立一個符合管理的方法GetAllPersons。

 

    public class PersonController : ApiController
    {
        public IEnumerable<Person> GetAllPersons()
        {
            return new List<Person>
            {
                new Person(){Id = 1, FirstName = "jack", LastName = "li"},
                new Person(){Id = 2, FirstName = "darren", LastName = "ji"},
                new Person(){Id = 3, FirstName = "sunny", LastName = "su"}
            };
        }
    }  

 

在瀏覽器中輸入:

 

http://localhost:2497/api/Person
http://localhost:2497/api/Person/AllPersons

 

都可以擷取到資料。

 

在解決方案下建立一個控制台應用程式。

 

在控制台下引用System.Net,並編寫如下:

 

        static void Main(string[] args)
        {
            using (WebClient proxy = new WebClient())
            {
                var response = proxy.DownloadString("http://localhost:2497/api/Person");
                Console.WriteLine(response);
                Console.ReadKey();
            }
        }

 

把控制台程式設定為啟動項。點擊"啟動"。

 

 

如果想擷取xml格式,可以設定WebClient的Headers屬性。

 

代碼修改如下:

 

        static void Main(string[] args)
        {
            using (WebClient proxy = new WebClient())
            {
                proxy.Headers.Add(HttpRequestHeader.Accept, "application/xml");
                var response = proxy.DownloadString("http://localhost:2497/api/Person");
                Console.WriteLine(response);
                Console.ReadKey();
            }
        }

 

 

WebClient用起來似乎也不錯,不過,HttpClient具有更豐富的API。HttpClient把接收的資訊封裝在HttpResponseMessage類中,把發出請求的資訊封裝到HttpRequestMessage中。

 

在控制台應用程式引用如下:


System.Net.Http.dll
System.Net.Http.Formatting.dll

 

編寫如下:

 

        static void Main(string[] args)
        {
            Console.WriteLine("擷取ASP.NET Web API服務內容如下:");
            HttpClient proxy = new HttpClient();
            proxy.GetAsync("http://localhost:2497/api/Person").ContinueWith((previous) =>
            {
                HttpResponseMessage response = previous.Result;
                response.Content.ReadAsStringAsync().ContinueWith((a) =>
                {
                    foreach (var item in a.Result)
                    {
                        Console.WriteLine(item.ToString());
                    }
                });
            });
            
            Console.ReadKey(true);
        }

 

以上就是建立簡單的ASP.NET Web API服務,以及使用WebClient和HttpClient消費服務的簡單例子。

使用HttpClient消費ASP.NET Web API服務

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.