public void Redirect() { string mainStr = "HTTP/" + VersionString() + " " + (int)StatusCode.SEE_OTHER + " " + SonicHTTPStatus.StatusToString(StatusCode.SEE_OTHER) + "\r\n"; mainStr += "Location:" + RedirectLocation + "\r\n\r\n"; byte[] buffer = ToBytes(mainStr); IsRedirectionRequest = true; OutputStream.Write(buffer, 0, buffer.Length); OutputStream.Flush(); OutputStream.Close(); IsRedirectionRequest = false; }
private string HeaderBuilder() { StringBuilder builder = new StringBuilder("HTTP/" + VersionString()); builder.Append(" " + ((int)StatusCode) + " "); if (StatusDescription == null) { builder.Append(SonicHTTPStatus.StatusToString(StatusCode) + EOL); } else { builder.Append(StatusDescription + EOL); } if (ContentLength64 != 0) { builder.Append("Content-Length:" + ContentLength64.ToString() + EOL); } if (ContentType != MIMEType.NONE) { builder.Append("Content-Type:" + SonicMIMEType.MIMEToString(ContentType) + EOL); } if (KeepAlive) { builder.Append("Connection:keep-alive" + EOL); } else { builder.Append("Connection:close" + EOL); } if (ContentEncoding != null) { builder.Append("Content-Encoding:" + ContentEncoding + EOL); } if (AcceptRanges != null) { builder.Append("Accept-Ranges:" + AcceptRanges + EOL); } if (ContentRange != null) { builder.Append("Content-Range:" + ContentRange + EOL); } if (SendChunked) { builder.Append("Transfer-Encoding:chunked" + EOL); } foreach (string value in HeaderList) { builder.Append(value + EOL); } foreach (string c in Cookies) { builder.Append(c + EOL); } builder.Append(EOL); return(builder.ToString()); }