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));
    

      

  • 相关阅读:
    hdu 2222 Keywords Search 模板题
    AC自动机 (模板)
    7. 通过鼠标右键改变视角
    NGUI所见即所得之UIAtlasMaker , UIAtlas (2)
    6. 通过鼠标滑轮控制“镜头远近”
    5. Unity脚本的执行顺序
    4. 在Inspector面板中显示类中变量+ 拓展编辑器
    NGUI 的使用教程与实例(入门)(1 )
    1. 通过移动鼠标旋转摄像机观察模型
    C#面试题
  • 原文地址:https://www.cnblogs.com/cxd1008/p/6640015.html
Copyright © 2011-2022 走看看