zoukankan      html  css  js  c++  java
  • 使用HttpClient操作ASP.NET Web API 2.1增删改查

    使用NuGet包安装Microsoft ASP.NET Web API 2.1 Client Libraries,

    调用方式代码如下:

     1        HttpClient client = new HttpClient();
     2             client.BaseAddress = new Uri("http://localhost:2471/");//基地址
     3             client.DefaultRequestHeaders.Accept.Add(
     4                 new MediaTypeWithQualityHeaderValue("application/json"));
     5             HttpResponseMessage response = client.GetAsync("api/values").Result;
     6             if (response.IsSuccessStatusCode)
     7             {
     8                 var products = response.Content.ReadAsAsync<IEnumerable<ProductInfo>>().Result;
     9             }
    10             else
    11             {
    12                 Console.WriteLine("{0} ({1})", (int)response.StatusCode, response.ReasonPhrase);
    13             }
    14 
    15           
    16             
    17             //HTTP Post请求
    18             ProductInfo pro = new ProductInfo();
    19             pro.dateTime1 = DateTime.Now;
    20             pro.Int = 1;
    21              response = client.PutAsJsonAsync<ProductInfo>("api/Values", pro).Result;
    22             if (response.IsSuccessStatusCode)
    23             {
    24                 
    25             }
    26             else
    27             {
    28                 Console.WriteLine("{0} ({1})", (int)response.StatusCode, response.ReasonPhrase);
    29             }
    30 
    31            response =  client.DeleteAsync("api/values/5").Result;
    32            if (response.IsSuccessStatusCode)
    33            {
    34 
    35            }
    36            else
    37            {
    38                Console.WriteLine("{0} ({1})", (int)response.StatusCode, response.ReasonPhrase);
    39            }

    values控制器代码如下:

     1 public IEnumerable<ProductInfo> GetList()
     2         {
     3             //string s = this.Request.Headers.GetValues("YXLCookie").FirstOrDefault();
     4 
     5             ProductInfo p = new ProductInfo();
     6             p.Int = 432;
     7             p.string1 = "432432";
     8             p.dateTime2 = DateTime.Now;
     9 
    10 
    11             ProductItem pi = new ProductItem() { Int = 1, string1 = "432432" };
    12             p.productItem = pi;
    13 
    14             ProductInfo p2 = new ProductInfo();
    15             p2.Int = 432;
    16             p2.string1 = "432432";
    17             p2.dateTime2 = DateTime.Now;
    18 
    19 
    20             ProductItem pi2 = new ProductItem() { Int = 1, string1 = "432432", dateTime1 = DateTime.Now };
    21             p2.productItem = pi2;
    22 
    23             List<ProductInfo> list = new List<ProductInfo>();
    24             list.Add(p);
    25             list.Add(p2);
    26 
    27             return list;
    28         }
    29 
    30       
    31 
    32         // POST api/values
    33         public void PostProduct([FromBody]ProductInfo pro)
    34         {
    35 
    36         }
    37         // DELETE api/values/5
    38         public void Delete(int id)
    39         {
    40         }


    使用JsonConvert要安装Json.NET,使用NuGet安装Json.NET如果我们新增json格式的数据,需要将json格式转换为object对象,代码如下:

     1 HttpClient client = httpClient;
     2             client.BaseAddress = new Uri("https://api.weixin.qq.com");
     3             client.DefaultRequestHeaders.Accept.Add(
     4                 new MediaTypeWithQualityHeaderValue("application/json"));
     5             
     6            
     7             object s1 = JsonConvert.DeserializeObject<object>(@"{
     8                  'button':[
     9                  {    
    10                       'type':'click',
    11                       'name':'协运跟踪',
    12                       'key':'V1001_TODAY_MUSIC'
    13                   },
    14                   {
    15                        'type':'click',
    16                        'name':'金牌航线',
    17                        'key':'V1001_TODAY_SINGER'
    18                   },
    19                   {
    20                        'name':'菜单测试',
    21                        'sub_button':[
    22                        {    
    23                            'type':'view',
    24                            'name':'运价',
    25                            'url':'http://weixin.51xieyun.com/price/index'
    26                         },
    27                         {
    28                            'type':'view',
    29                            'name':'首页',
    30                            'url':'http://weixin.51xieyun.com'
    31                         },
    32                         {
    33                            'type':'click',
    34                            'name':'赞一下我们',
    35                            'key':'V1001_GOOD'
    36                         }]
    37                    }]
    38              }
    39             ");
    40             HttpResponseMessage response = client.PostAsJsonAsync<object>("cgi-bin/menu/create?access_token=dPm9S5I6bMKp3QHhcxxqyJhuaNH4h20lJaIeNi-gXVbkpQCsUdyvOLbfQCPmDFWMIS0LowOXSVfu1iD47VC9nolu29-rRJ0oWUhIX0WRDYKPOIZtf4onsSvFePdt1iX9jba5rmhR769OG7cye--V4g", s1).Result;
    41             if (response.IsSuccessStatusCode)
    42             {
    43                 var products = response.Content.ReadAsAsync<object>().Result;
    44             }
    45             else
    46             {
    47                 Console.WriteLine("{0} ({1})", (int)response.StatusCode, response.ReasonPhrase);
    48             }
  • 相关阅读:
    简单探讨spring整合mybatis时sqlSession不需要释放关闭的问题
    男人常做俯卧撑,谁还敢说不行!
    五大穴位
    实战c++中的vector系列--vector的一些异常
    [Canvas画图] 藏图阁(16) 人体穴位
    算法题:剔除字符串(非常有意思)
    怎样在win8系统下建立wifi热点
    【code】flex_进度条样式
    使用bbed改动数据
    Go语言核心之美 3.2-slice切片
  • 原文地址:https://www.cnblogs.com/yxlblogs/p/3549776.html
Copyright © 2011-2022 走看看