使用C# WebSocket4Net建立连接时如何添加请求头?
如何在WebSocket连接中添加自定义请求头(如User-Agent)
如果使用第三方库遇到功能限制或稳定性问题,推荐使用.NET原生的ClientWebSocket,它官方维护且原生支持自定义请求头,示例代码如下:
using System.Net.WebSockets; using System.Threading; // 初始化ClientWebSocket实例 using var websocket = new ClientWebSocket(); // 添加自定义请求头 websocket.Options.SetRequestHeader("User-Agent", "MyCustomUserAgent/1.0"); websocket.Options.SetRequestHeader("X-Custom-Header", "CustomValue"); try { // 异步发起WebSocket连接 await websocket.ConnectAsync(new Uri("wss://url.com"), CancellationToken.None); // 连接成功提示 MessageBox.Show("Connected to WebSocket server"); // 此处可添加消息收发逻辑 // 示例:接收消息 var buffer = new byte[1024 * 4]; var result = await websocket.ReceiveAsync(new ArraySegment<byte>(buffer), CancellationToken.None); // 处理收到的消息... } catch (Exception ex) { MessageBox.Show($"连接失败: {ex.Message}"); }
关键说明:
ClientWebSocket是.NET官方组件,无需额外安装第三方包,兼容性和稳定性有保障- 通过
Options.SetRequestHeader()方法可以添加任意合法的自定义请求头 ConnectAsync是异步方法,需在async修饰的方法中调用
如果偏好第三方库,推荐使用WebSocketSharp,它支持自定义请求头且连接表现稳定,示例代码:
using WebSocketSharp; var websocket = new WebSocket("wss://url.com"); // 设置自定义请求头 websocket.SetRequestHeader("User-Agent", "MyCustomUserAgent/1.0"); websocket.SetRequestHeader("X-Custom-Header", "CustomValue"); // 连接成功回调 websocket.OnOpen += (sender, e) => { MessageBox.Show("Connected to WebSocket server"); }; // 发起连接 websocket.Connect();
注:WebSocketSharp需要通过NuGet包管理器安装
WebSocketSharp-netstandard(适配.NET Core/.NET 5+)或WebSocketSharp(适配.NET Framework)
内容的提问来源于stack exchange,提问作者harun jasna
相关产品推荐
相关产品推荐

