C#如何解析http报文

2019-12-26 13:12:28刘景俊

编写以下代码以实现解析文件:

 

 
  1. class Program  { 
  2. static void Main(string[] args)  { 
  3. SRART: Console.WriteLine("输入待解析的HTTP报文数据文件完整路径:");  var filename = Console.ReadLine(); 
  4. try  { 
  5. FileStream fs = new FileStream(filename, FileMode.Open);  BinaryReader br = new BinaryReader(fs); 
  6. var data = br.ReadBytes((int)fs.Length);  var header = new HTTPHeader(data); 
  7. var x = 0;  foreach (var f in header.HTTPField) 
  8. {  if (!String.IsNullOrEmpty(f)) 
  9. {  Console.WriteLine($"[{x:00}] - {(HTTPHeaderField) x} : {f}"); 
  10. }  x++; 
  11. }  Console.WriteLine($"总数据尺寸{fs.Length}字节,实际数据尺寸{header.Data.Length}字节"); 
  12. Console.WriteLine(Encoding.UTF8.GetString(header.Data));  Console.WriteLine(); 
  13. br.Close();  fs.Close();  
  14. }  catch (Exception e) 
  15. {  Console.WriteLine(e); 
  16. }  goto SRART; 
  17. }  } 

这里还未实现gzip解压缩和字符解码,直接用UTF8解码输出的。(需要时再写吧,都是体力活儿~)

效果图展示:

C#如何解析http报文