公交车上荫蒂添的好舒服的电影-公用玩物(np双xing总受)-公用小荡货芊芊-公与妇仑乱hd-攻把受做哭边走边肉楼梯play-古装一级淫片a免费播放口

LOGO OA教程 ERP教程 模切知識交流 PMS教程 CRM教程 開發文檔 其他文檔  
 
網站管理員

Windows Forms應用程序中集成一個ASP.NET API服務

admin
2024年9月6日 11:58 本文熱度 1122

在Windows Forms應用程序中集成一個ASP.NET API服務可以是一種有效的方式來為桌面應用程序提供網絡服務能力。這種方式特別適用于需要在桌面環境中運行的小型服務。我們可以利用HttpListener類來實現這種功能,因為它不依賴于IIS或Kestrel來運行。下面是一個實現此目的的示例。

環境準備

  1. Visual Studio: 創建一個Windows Forms應用程序。

  2. .NET Framework/CORE: 確保你的項目使用的環境支持HttpListener


創建Windows Forms項目

首先,使用Visual Studio創建一個新的Windows Forms應用項目。

集成ASP.NET API服務

這里,我們將在Windows Forms應用程序中創建一個簡單的API服務。

在WinForms中配置HttpListener

打開主窗體代碼文件,例如Form1.cs,然后添加以下代碼:

using System.Net;using System.Text;
namespace AppWeb{    public partial class Form1 : Form    {        private HttpListener _httpListener;        private Thread _listenerThread;
       public Form1()        {            InitializeComponent();        }
       private void StartHttpServer()        {            _httpListener = new HttpListener();            _httpListener.Prefixes.Add("http://localhost:5000/");            _httpListener.Start();
           _listenerThread = new Thread(new ThreadStart(ListenForRequests));            _listenerThread.IsBackground = true;            _listenerThread.Start();
           Console.WriteLine("HTTP Server started on http://localhost:5000/");        }
       private void ListenForRequests()        {            while (_httpListener.IsListening)            {                try                {                    var context = _httpListener.GetContext();                    ProcessRequest(context);                }                catch (Exception ex)                {                    Console.WriteLine($"Error: {ex.Message}");                }            }        }
       private void ProcessRequest(HttpListenerContext context)        {            var request = context.Request;            var response = context.Response;
           Console.WriteLine($"Received request: {request.HttpMethod} {request.Url}");
           // 固定響應,實際應用中根據URL路徑處理不同請求            string responseString = "{\"message\": \"Hello from WinForms API!\"}";            byte[] buffer = Encoding.UTF8.GetBytes(responseString);
           response.ContentLength64 = buffer.Length;            response.ContentType = "application/json";            response.OutputStream.Write(buffer, 0, buffer.Length);            response.OutputStream.Close();        }
       private void btnStart_Click(object sender, EventArgs e)        {            StartHttpServer();        }
       private void btnStop_Click(object sender, EventArgs e)        {            if (_httpListener != null)            {                _httpListener.Stop();                _httpListener.Close();            }        }    }}

關鍵點

  • HttpListener: 此類用于創建一個簡易的HTTP服務器,它可以偵聽HTTP請求。

  • ListenForRequests: 在后臺線程中運行,監聽進入的HTTP請求,并處理這些請求。

  • ProcessRequest: 處理傳入的請求并生成響應。在這里,你可以實現復雜的路由和處理邏輯。

  • 應用程序關閉時處理: 在FormClosing事件中停止HTTP監聽器以釋放資源。


運行和測試

啟動Windows Forms應用程序,確保顯示的信息表明服務器已啟動。然后,你可以使用curl、Postman或瀏覽器訪問http://localhost:5000/來測試API服務。

curl http://localhost:5000/


修改ProcessRequest方法以支持多個路由

private void ProcessRequest(HttpListenerContext context){    var request = context.Request;    var response = context.Response;
   Console.WriteLine($"Received request: {request.HttpMethod} {request.Url}");
   string responseString = string.Empty;
   switch (request.Url.AbsolutePath)    {        case "/":            responseString = "{\"message\": \"Hello from WinForms API!\"}";            break;        case "/time":            responseString = $"{{\"time\": \"{DateTime.Now.ToString("o")}\"}}";            break;        case "/greet":            string name = request.QueryString["name"] ?? "Guest";            responseString = $"{{\"greeting\": \"Hello, {name}!\"}}";            break;        default:            response.StatusCode = (int)HttpStatusCode.NotFound;            responseString = "{\"error\": \"Not Found\"}";            break;    }
   byte[] buffer = Encoding.UTF8.GetBytes(responseString);    response.ContentLength64 = buffer.Length;    response.ContentType = "application/json";    response.OutputStream.Write(buffer, 0, buffer.Length);    response.OutputStream.Close();}

總結

通過將HttpListener集成到Windows Forms應用程序中,你可以方便地為桌面程序添加簡單API服務功能。這種方法適合用來進行輕量級通訊或者是在開發期間使用,需要注意生產環境下的安全性和性能優化。


該文章在 2024/9/10 10:25:44 編輯過
關鍵字查詢
相關文章
正在查詢...
點晴ERP是一款針對中小制造業的專業生產管理軟件系統,系統成熟度和易用性得到了國內大量中小企業的青睞。
點晴PMS碼頭管理系統主要針對港口碼頭集裝箱與散貨日常運作、調度、堆場、車隊、財務費用、相關報表等業務管理,結合碼頭的業務特點,圍繞調度、堆場作業而開發的。集技術的先進性、管理的有效性于一體,是物流碼頭及其他港口類企業的高效ERP管理信息系統。
點晴WMS倉儲管理系統提供了貨物產品管理,銷售管理,采購管理,倉儲管理,倉庫管理,保質期管理,貨位管理,庫位管理,生產管理,WMS管理系統,標簽打印,條形碼,二維碼管理,批號管理軟件。
點晴免費OA是一款軟件和通用服務都免費,不限功能、不限時間、不限用戶的免費OA協同辦公管理系統。
Copyright 2010-2025 ClickSun All Rights Reserved

主站蜘蛛池模板: 精品无码成人片一区二区 | 国产精品亚洲综合色拍 | 国产av成人无码精品网站 | 国产麻豆极品色哟哟 | 丰满少妇人妻久久久久久 | 国产经典欧美一区二区三区 | 国产av无码高潮 | 精品一区二区三区免费毛片爱 | h无码动漫在线观看 | 精品无吗一二三中国兔费黄色视频 | 国产a级一级久久毛片 | 国产成人久久综合麻豆 | 国产午夜草莓视频在线观看 | 国产一区二区精品九九 | 岛国av无码免费无禁网站麦芽 | 成人亚洲片v一区二区中出片 | 91在线视频观看 | a级毛片无码免费真人久久 a级毛片无码兔费真人久久 | 国产91对白在线观看 | 国产精品三级网站 | 91午夜精品久久久久精品 | 国99精品 | 精品美女视频免费直播 | 2025韩国午夜福利片在线观看 | 国产精品影片在线观看 | 精品国产品对白在线 | 国产精品无码专区在线观看 | 国产成人精品福利一 | 18禁美女黄网站色大片免费看 | 国产成人一区二区三区电影 | 国产精品色哟哟 | 国产亚洲制服国产亚洲制服 | 91美女视频 | 成人免费高清视频 | 国产精品动漫无码1区 | 国产一区二区不卡 | 国产日韩欧美另类视频 | 国产成人精品亚洲日本在线 | 国产内射在线激情一区熟女我美 | 国产精品偷窥 | 96成人午夜福利一区二区 |