You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.29 10:02:03