通过HttpClient的方式去Curd数据????
在网上看博客的时候,看到这系列的文章,别特帮,强烈推荐
里面有一章节是通过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(":9000/");
// 为JSON格式添加一个Accept报头
client.DefaultRequestHeaders.Accept.Add(
new MediaTypeWithQualityHeaderValue("application/json"));
}
}
}
这段代码把基URI设置为“: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数据????
温馨提示: 本文由Jm博客推荐,转载请保留链接: https://www.jmwww.net/file/web/42427.html
- 上一篇:phpmyadmin getshell
- 下一篇:JS正则验证数字格式2