C#工具:利用HttpClient調用WebApi


可以利用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
    {
        /// <summary>
        /// api調用方法/注意一下API地址
        /// </summary>
        /// <param name="controllerName">控制器名稱--自己所需調用的控制器名稱</param>
        /// <param name="overb">請求方式--get-post-delete-put</param>
        /// <param name="action">方法名稱--如需一個Id(方法名/ID)(方法名/?ID)根據你的API靈活運用</param>
        /// <param name="obj">方法參數--如提交操作傳整個對象</param>
        /// <returns>json字符串--可以反序列化成你想要的</returns>
        public static string GetApiMethod(string controllerName, string overb, string action, object obj = null)
        {
            Task<HttpResponseMessage> 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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM