码迷,mamicode.com
首页 > Web开发 > 详细

通过HttpClient的方式去Curd数据????

时间:2019-11-29 11:13:29      阅读:86      评论:0      收藏:0      [点我收藏+]

标签:arc   body   blog   main   mod   初始   window   阻塞   font   

在网上看博客的时候,看到这系列的文章,别特帮,强烈推荐

里面有一章节是通过HttpClient的方法去更新数据的,新颖,记录下。

???1:创建一个Model数据模型

这个类创建一个数据对象,HttpClient将把它写入HTTP请求体中,也从HTTP响应体中读取它。

class Product 
{ 
    public string Name { get; set; } 
    public double Price { get; set; } 
    public string Category { get; set; } 
}

???2:初始化HttpClient

创建一个新的HttpClient实例,并像下面这样初始化它

namespace ProductStoreClient 
{ 
    using System; 
    using System.Collections.Generic; 
    using System.Net.Http; 
    using System.Net.Http.Headers; 

    class Program 
    { 
        static void Main(string[] args) 
        { 
            HttpClient client = new HttpClient(); 
            client.BaseAddress = new Uri("http://localhost:9000/");             // 为JSON格式添加一个Accept报头
            client.DefaultRequestHeaders.Accept.Add( 
                new MediaTypeWithQualityHeaderValue("application/json")); 
        } 
    } 
}
这段代码把基URI设置为“http://localhost:9000/”,并将Accept报头设置为“application/json”,
这是告诉服务器,以JSON格式发送数据

???3:获取数据

// List all products.
// 列出所有产品
HttpResponseMessage response = client.GetAsync("api/products").Result;  // Blocking call(阻塞调用)! 
if (response.IsSuccessStatusCode) 
{ 
    // Parse the response body. Blocking!
    // 解析响应体。阻塞!
如果HTTP响应指示成功,响应体便含有一个JSON格式的产品列表。要解析这个列表,需调用ReadAsAsync
var products = response.Content.ReadAsAsync<IEnumerable<Product>>().Result; foreach (var p in products) { Console.WriteLine("{0}\t{1};\t{2}", p.Name, p.Price, p.Category); } } else { Console.WriteLine("{0} ({1})", (int)response.StatusCode, response.ReasonPhrase); }

GetAsync方法发送HTTP GET请求。正如其名称所暗示的,GetAsync是异步的。它立即返回,不会等待服务器的响应

返回值是一个表示异步操作的Task对象。当该操作完成时,Task.Result属性包含HTTP响应。

重要的是理解,直到请求完成(或超时),采用Result属性的过程是应用程序线程阻塞的。

控制台应用程序的阻塞没问题,但是,你决不应该在一个Windows应用程序的UI上做这种事,因为这会阻塞UI去响应用户的输入

 

通过HttpClient的方式去Curd数据????

标签:arc   body   blog   main   mod   初始   window   阻塞   font   

原文地址:https://www.cnblogs.com/ZkbFighting/p/11956068.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!