| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192 |
- //
- // Usage:
- // rtest host port url
- //
- // This program dumps the results of the HTTP request without any HTTP
- // headers
- //
- using System;
- using System.Net;
- using System.IO;
- using System.Net.Sockets;
- class X {
- static NetworkStream ns;
- static StreamWriter sw;
- static StreamReader sr;
- static TcpClient c;
- static bool debug;
- static bool headers;
- static string header;
-
- static void send (string s)
- {
- if (debug)
- Console.WriteLine (s);
-
- sw.Write (s);
- sw.Flush ();
- }
-
- static void Main (string [] args)
- {
- int i = 0;
- while (args [i].StartsWith ("-")){
- if (args [i] == "-debug")
- debug = true;
- if (args [i] == "-headers")
- headers = true;
- if (args [i] == "-header")
- header = args [++i];
- i++;
- }
-
- c = new TcpClient (args [i], Int32.Parse (args [i+1]));
- c.ReceiveTimeout = 1000;
- ns = c.GetStream ();
-
- sw = new StreamWriter (ns);
- sr = new StreamReader (ns);
- string host = args [i];
- if (args [i+1] != "80")
- host += ":" + args [i+1];
- send (String.Format ("GET {0} HTTP/1.1\r\nHost: {1}\r\n\r\n", args [i+2], host));
- MemoryStream ms = new MemoryStream ();
-
- try {
- byte [] buf = new byte [1024];
- int n;
-
- while ((n = ns.Read (buf, 0, 1024)) != 0){
- ms.Write (buf, 0, n);
- }
- } catch {}
- ms.Position = 0;
- sr = new StreamReader (ms);
- string s;
-
- while ((s = sr.ReadLine ()) != null){
- if (s == ""){
- if (headers)
- return;
-
- string x = sr.ReadToEnd ();
- Console.Write (x);
- break;
- } else {
- if (debug || headers)
- Console.WriteLine (s);
- if (header != null && s.StartsWith (header)){
- Console.WriteLine (s);
- return;
- }
- }
- }
- }
- }
|