模拟.net Core ---- http/tcp 通讯-- 整理接收得报文

用谷歌浏览器请求  Sockt 监听的8044地址:

接收的报文如下:

GET /index.cshtml HTTP/1.1
Accept: text/html, application/xhtml+xml, image/jxr, */*
Accept-Language: zh-Hans-CN,zh-Hans;q=0.5
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.36 Edge/16.16299
Accept-Encoding: gzip, deflate
Host: localhost:8044
Connection: Keep-Alive  

正则采用多行模式进行处理成一行一行的数据 : MatchCollection strli = Regex.Matches(str, @"^.+?(?=\r\n)", RegexOptions.Multiline);

第一行:  请求方式,请求的地址, 通讯协议

第二行:  接收数据格式

第三行: 语言

第四行: 请求的方式标记(浏览器,andriod, IOS)

 1         public string DoRequestString(string str)
 2         {
 3             MatchCollection strli = Regex.Matches(str, @"^.+?(?=\r\n)", RegexOptions.Multiline);
 4             if (strli.Count <= 0)
 5             {
 6                 return "101";
 7             }
 8             foreach (var item in strli)
 9             {
10                 if (item.ToString().ToUpper().Contains("HOST:")) // 处理请求地址,看请求是否是静态资源,可直接返回
11                 {
12                     
13                 }
14                 if (item.ToString().ToUpper().Contains("ACCEPT")) //处理请求的类型,这里可以限定,例如做接口服务的,可以限定为"text/html"
15                 {
16                     if (!item.ToString().ToUpper().Contains("TEXT/HTML"))
17                     {
18                         return "402";
19                     }
20                 }
21                 if (item.ToString().ToUpper().Contains("GET")) // 处理请求的地址
22                 {
23                     string ss = Regex.Match(item.ToString(), "/.+?(?=\\s)").ToString();
24                 }
25             }
26             return "404";
27         }
View Code

 

  

转载于:https://www.cnblogs.com/duchyaiai/p/8652018.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值