GET /server HTTP/1.1
Upgrade: WebSocket
Connection: Upgrade
Host: localhost:8181
Origin: http://localhost:8080
Sec-WebSocket-Key1: 42100 1 W5V X170y ER
Sec-WebSocket-Key2: ~\\ 8 I4ms;34 l`1j5 V2h0
Q??6QK?
我收到上述消息并使用c#使用以下正则表达式提取最后一组字符(Q ?? 6QK?):
Regex.Match(message, "\r\n\r\n(?<value>.*?)$", options).Groups["value"].Value;
但正则表达式的结果是返回字符串终结符,如下所示:
问?? 6QK?\ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0
为什么呢?有什么问题?
答案 0 :(得分:1)
您的字符串最后包含空值。问题在于您传递给正则表达式引擎的字符串,而不是正则表达式引擎本身。
也许你可以发布创建字符串的代码。你可能从字节[]中读得太多了。
答案 1 :(得分:0)
响应中可能存在这些空值。服务器是否指定了内容长度?
您是否有理由不使用HTTP客户端从HTTP服务中读取?你最终会编写很多样板文件(关于连接失败等等),你可以让图书馆为你处理。