利用HttpClient调用WebApi

2021-06-10 05:05

阅读:552

标签:.post   操作   object   控制器   ext   lin   task   名称空间   api   

可以利用HttpClient来进行Web Api的调用。由于WebA Api的调用本质上就是一次普通的发送请求与接收响应的过程,

所有HttpClient其实可以作为一般意义上发送HTTP请求的工具。

using System;
using System.Collections.Generic;
using System.Linq;
using System.Net.Http;
using System.Text;
using System.Threading.Tasks;

namespace 自己的名称空间
{
    public class ApiHelper
    {
        /// 
        /// api调用方法/注意一下API地址
        /// 
        /// 控制器名称--自己所需调用的控制器名称
        /// 请求方式--get-post-delete-put
        /// 方法名称--如需一个Id(方法名/ID)(方法名/?ID)根据你的API灵活运用
        /// 方法参数--如提交操作传整个对象
        /// json字符串--可以反序列化成你想要的
        public static string GetApiMethod(string controllerName, string overb, string action, object obj = null)
        {
            Task task = null;
            string json = "";
            HttpClient client = new HttpClient();
            client.BaseAddress = new Uri("http://localhost:****/api/" + controllerName + "/");
            switch (overb)
            {
                case "get":
                    task = client.GetAsync(action);
                    break;
                case "post":
                    task = client.PostAsJsonAsync(action, obj);
                    break;
                case "delete":
                    task = client.DeleteAsync(action);
                    break;
                case "put":
                    task = client.PutAsJsonAsync(action, obj);
                    break;
                default:
                    break;
            }
            task.Wait();
            var response = task.Result;
            if (response.IsSuccessStatusCode)
            {
                var read = response.Content.ReadAsStringAsync();
                read.Wait();
                json = read.Result;
            }
            return json;
        }
    }
}

可能需要以下引用集:

System.Net.Http.Formatting.dll

System.Web.Http.dll

利用HttpClient调用WebApi

标签:.post   操作   object   控制器   ext   lin   task   名称空间   api   

原文地址:https://www.cnblogs.com/liuyuanjiao/p/10621866.html


评论


亲,登录后才可以留言!