// This method returns: // 1. NULL if incoming datastream doesn't contain at least 4 bytes // 2. Empty String is HTTP method is unknown // 3. HTTP method name private static String ReadHttpMethodName(Connection connection) { Byte[] lBuffer = new Byte[4]; if (connection.Receive(lBuffer, 0, 4) < 4) return null; String lHttpMethodName = Encoding.ASCII.GetString(lBuffer, 0, 4); if ((lHttpMethodName == "POST") || (lHttpMethodName == "GET ") || (lHttpMethodName == "HTTP") || (lHttpMethodName == "HEAD") || (lHttpMethodName == "PUT ")) return lHttpMethodName; if (lHttpMethodName == "MERG") { connection.Read(lBuffer, 0, 1); if (lBuffer[0] != (Byte)'E') return String.Empty; return "MERGE"; } if (lHttpMethodName == "DELE") { connection.Read(lBuffer, 0, 2); if (lBuffer[0] != (Byte)'T' || lBuffer[1] != (Byte)'E') return String.Empty; return "DELETE"; } if (lHttpMethodName == "OPTI") { connection.Read(lBuffer, 0, 3); if (lBuffer[0] != (Byte)'O' || lBuffer[1] != (Byte)'N' || lBuffer[2] != (Byte)'S') return String.Empty; return "OPTIONS"; } return String.Empty; }