zoukankan      html  css  js  c++  java
  • WebApi(6) 后台C#调用WebApi

    今天来写一下后台C#代码如何访问webapi 这里使用HttpClient方法访问webapi也是很常用的方法。

    因为我在是webapi项目里直接写的,为了方便就直接读取了当前地址,代码包括 webapi的所有用法【Getstring GetClass GetListClass Post put Delete】。

    代码如下:

                //后台client方式GET提交
                HttpClient myHttpClient = new HttpClient();
                //提交当前地址的webapi
                string url = "http://" + System.Web.HttpContext.Current.Request.Url.Host + ":" + System.Web.HttpContext.Current.Request.Url.Port.ToString();
                myHttpClient.BaseAddress = new Uri(url);
                //GET提交 返回string 
                HttpResponseMessage response = myHttpClient.GetAsync("api/ApiDemo/Get2").Result;
                string result = "";
                if (response.IsSuccessStatusCode)
                {
                    result = response.Content.ReadAsStringAsync().Result;
                }
                //return Content(JsonConvert.SerializeObject(result));
    
                Product product = null;
                //GET提交 返回class
                response = myHttpClient.GetAsync("api/ProductsAPI/GetProduct/1").Result;
                if (response.IsSuccessStatusCode)
                {
                    product = response.Content.ReadAsAsync<Product>().Result;
                }
                //return Content (JsonConvert.SerializeObject(product));
    
                //put 提交 先创建一个和webapi对应的类            
                var content = new FormUrlEncodedContent(new Dictionary<string, string>()
                    {
                        {"Id","2"},
                        {"Name","Name:"+DateTime.Now.ToString() },
                        {"Category","111"},
                        {"Price","1"}
                     });
                response = myHttpClient.PutAsync("api/ProductsAPI/PutProduct/2", content).Result;
                if (response.IsSuccessStatusCode)
                {
                    result = response.Content.ReadAsStringAsync().Result;
                }
    
    
                //post 提交 先创建一个和webapi对应的类
                content = new FormUrlEncodedContent(new Dictionary<string, string>()
                    {
                        {"Id","382accff-57b2-4d6e-ae84-a61e00a3e3b5"},
                        {"Name","Name" },
                        {"Category","111"},
                        {"Price","1"}
                     });
                response = myHttpClient.PostAsync("api/ProductsAPI/PostProduct", content).Result;
                if (response.IsSuccessStatusCode)
                {
                    result = response.Content.ReadAsStringAsync().Result;
                }
                //delete 提交
                response = myHttpClient.DeleteAsync("api/ProductsAPI/DeleteProduct/1").Result;
                if (response.IsSuccessStatusCode)
                {
                    result = response.Content.ReadAsStringAsync().Result;
                }
    
                //GET提交 返回List<class>
                response = myHttpClient.GetAsync("api/ProductsAPI/GetAllProducts").Result;
                List<Product> listproduct = new List<Models.Product>();
                if (response.IsSuccessStatusCode)
                {
                    listproduct = response.Content.ReadAsAsync<List<Product>>().Result;
                }
                return Content(JsonConvert.SerializeObject(listproduct));
    

      

  • 相关阅读:
    matlab二维绘图学习摘要
    linux下有名管道进程通信
    《编写可读代码的艺术》第10章 抽取不相关的子问题
    《编写可读代码的艺术》第9章 变量可读性
    《编写可读代码的艺术》第8章 拆分超长的表达式
    《编写可读代码的艺术》第7章 简化循环和逻辑
    《编写可读代码的艺术》第6章 写出言简意赅的注释
    《编写可读代码的艺术》第5章 该写什么样的注释
    《编写可读代码的艺术》第4章 审美
    《编写可读代码的艺术》第3章 不会误解的名字
  • 原文地址:https://www.cnblogs.com/cxd1008/p/6640015.html
Copyright © 2011-2022 走看看