public override string ToString() { StringBuilder request = new StringBuilder(); string httpType = ""; switch (type) { case Type.GET: httpType = "GET"; break; case Type.HEAD: httpType = "HEAD"; break; case Type.POST: httpType = "POST"; break; case Type.PUT: httpType = "PUT"; break; case Type.DELETE: httpType = "DELETE"; break; case Type.TRACE: httpType = "TRACE"; break; case Type.CONNECT: httpType = "CONNECT"; break; default: break; } request.Append(httpType + " "); request.Append(url + " "); request.Append("HTTP/" + version + "\r\n"); request.Append(header.ToString()); request.Append(body + "\r\n\r\n"); return(request.ToString()); }
/// <summary> /// Method is called when a new client request is received, should not be called by user! /// </summary> /// <param name="obj"></param> /// <param name="e"></param> private static void ProcessClientRequest(object obj, HTTPServer.WebServerEventArgs e) { //DebugUtils.Print(DebugLevel.INFO, "Received a request in ProcessClientRequest method:"); //do not use this, emtpy (null) requests will cause HTTPHeader.Parse to return null, ToString() on null object will cause a null reference exception //DebugUtils.Print(DebugLevel.INFO, HTTPHeader.Parse(e.rawData).ToString()); HTTPRequest request = HTTPRequest.Parse(e.rawData); DebugUtils.Print(DebugLevel.INFO, request.ToString()); HTTPHeader header = new HTTPHeader(); header.Add("Content-Type", "text/html; charset=utf-8"); header.Add("Connection", "close"); string body = "Hello World!"; string data = "HTTP/1.1 200 OK\r\n" + header.ToString() + body; OutPutStream(e.response, data); }