namespace Devoid.Net.Http { using System; using System.IO; using System.Net; using System.Net.Sockets; using System.Text; public class PrimitiveWebRequest { private WebHeaderCollection mHeaders = new WebHeaderCollection(); private string mMethod = ""; private int mPort = 80; private System.Uri mUri; public static PrimitiveWebRequest CreateFromUrl(string Url) { return new PrimitiveWebRequest { Uri = new System.Uri(Url) }; } public string GetHttpResponseString(string LocationForGet) { this.Method = "GET"; IPEndPoint remoteEP = new IPEndPoint(Dns.GetHostAddresses(this.mUri.DnsSafeHost)[0], this.Port); TcpClient client = new TcpClient(); client.Connect(remoteEP); StringBuilder builder = new StringBuilder(); builder.Append(this.Method); builder.Append(' '); builder.Append(LocationForGet); builder.Append(" HTTP/1.1"); builder.Append('\r'); builder.Append(this.mHeaders.ToString()); NetworkStream stream = client.GetStream(); StreamWriter writer = new StreamWriter(stream); writer.Write(builder.ToString()); writer.Flush(); string str = new StreamReader(stream).ReadToEnd(); stream.Close(); client.Close(); return str; } public WebHeaderCollection Headers { get { return this.mHeaders; } } public string Method { get { return this.mMethod; } set { this.mMethod = value; } } public int Port { get { return this.mPort; } set { this.mPort = value; } } public System.Uri Uri { get { return this.mUri; } set { this.mUri = value; } } } }