狠狠色丁香婷婷综合尤物/久久精品综合一区二区三区/中国有色金属学报/国产日韩欧美在线观看 - 国产一区二区三区四区五区tv

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

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

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

在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