C#如何解析http报文

2019-12-26 13:12:28刘景俊
  • }  catch (Exception) 
  • { }  } 
  • #endregion  #region METHODES 
  • private void HTTPHeaderParse(string Header)  { 
  • #region HTTP HEADER REQUEST & RESPONSE  HTTPHeaderField HHField; 
  • string HTTPfield, buffer;  int Index; 
  • foreach (int IndexHTTPfield in Enum.GetValues(typeof(HTTPHeaderField)))  { 
  • HHField = (HTTPHeaderField)IndexHTTPfield;  HTTPfield = "n" + HHField.ToString().Replace('_', '-') + ": "; //Ajout de n devant pour éviter les doublons entre cookie et set_cookie 
  • // Si le champ n'est pas présent dans la requête, on passe au champ suivant  Index = Header.IndexOf(HTTPfield); 
  • if (Index == -1)  continue; 
  • buffer = Header.Substring(Index + HTTPfield.Length);  Index = buffer.IndexOf("rn"); 
  • if (Index == -1)  m_StrHTTPField[IndexHTTPfield] = buffer.Trim(); 
  • else  m_StrHTTPField[IndexHTTPfield] = buffer.Substring(0, Index).Trim(); 
  • //Console.WriteLine("Index = " + IndexHTTPfield + " | champ = " + HTTPfield.Substring(1) + " " + m_StrHTTPField[IndexHTTPfield]);  } 
  • // Affichage de tout les champs  /*for (int j = 0; j < m_StrHTTPField.Length; j++) 
  • {  HHField = (HTTPHeaderField)j; 
  • Console.WriteLine("m_StrHTTPField[" + j + "]; " + HHField + " = " + m_StrHTTPField[j]);  } 
  • */  #endregion 
  • }  #endregion