public override void handlePOSTRequest(HttpProcessor p, StreamReader inputData) { HandleRequest(p, "POST"); }
private static void HandleRequest(HttpProcessor p, string method) { var uri = new Uri(p.http_url); var webRequest = WebRequest.Create(uri) as HttpWebRequest; if (webRequest != null) { foreach (var key in p.httpHeaders.Keys) { var name = key.ToString(); var value = p.httpHeaders[key].ToString(); Console.WriteLine(string.Format("{0}:{1}", name, value)); switch (name) { case "Proxy-Connection": if (value == "keep-alive") { webRequest.KeepAlive = true; } break; case "User-Agent": webRequest.UserAgent = value; break; case "Accept": webRequest.Accept = value; break; case "Content-Length": webRequest.ContentLength = long.Parse(value); break; case "Host": break; default: webRequest.Headers.Add(name, value); break; } } webRequest.ContentType = "text/html"; //"application/x-www-form-urlencoded"; webRequest.Proxy = new WebProxy(); webRequest.Method = method; var response = webRequest.GetResponse(); var dataStream = response.GetResponseStream(); // ReSharper disable once AssignNullToNotNullAttribute //var reader = new StreamReader(dataStream); // Read the content. // var content = reader.ReadToEnd(); p.writeSuccess(); //p.outputStream.Write(content); dataStream.CopyTo(p.outputStream.BaseStream); //reader.Close(); dataStream.Close(); response.Close(); } }
public override void handleGETRequest(HttpProcessor p) { HandleRequest(p, "GET"); //if (p.http_url.Equals("/Test.png")) //{ // Stream fs = File.Open("../../Test.png", FileMode.Open); // p.writeSuccess("image/png"); // fs.CopyTo(p.outputStream.BaseStream); // p.outputStream.BaseStream.Flush(); //} //Console.WriteLine("request: {0}", p.http_url); //p.writeSuccess(); //p.outputStream.WriteLine("<html><body><h1>test server</h1>"); //p.outputStream.WriteLine("Current Time: " + DateTime.Now.ToString()); //p.outputStream.WriteLine("url : {0}", p.http_url); //p.outputStream.WriteLine("<form method=post action=/form>"); //p.outputStream.WriteLine("<input type=text name=foo value=foovalue>"); //p.outputStream.WriteLine("<input type=submit name=bar value=barvalue>"); //p.outputStream.WriteLine("</form>"); }
public abstract void handlePOSTRequest(HttpProcessor p, StreamReader inputData);
public abstract void handleGETRequest(HttpProcessor p);
public void listen() { listener = new TcpListener(port); listener.Start(); while (is_active) { TcpClient s = listener.AcceptTcpClient(); HttpProcessor processor = new HttpProcessor(s, this); Thread thread = new Thread(new ThreadStart(processor.process)); thread.Start(); Thread.Sleep(1); } }