<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Proxybonanza blog &#187; c# proxy</title>
	<atom:link href="http://blog.proxybonanza.com/tag/c-proxy/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.proxybonanza.com</link>
	<description>Just another WordPress weblog</description>
	<lastBuildDate>Tue, 08 Nov 2011 18:09:51 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Simple C# HTTP proxy class</title>
		<link>http://blog.proxybonanza.com/programming/simple-c-http-proxy-class/</link>
		<comments>http://blog.proxybonanza.com/programming/simple-c-http-proxy-class/#comments</comments>
		<pubDate>Fri, 12 Feb 2010 10:23:06 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Programming]]></category>
		<category><![CDATA[c sharp proxy]]></category>
		<category><![CDATA[c# proxy]]></category>

		<guid isPermaLink="false">http://blog.proxybonanza.com/?p=134</guid>
		<description><![CDATA[C# HTTP proxy example (GET and POST)]]></description>
			<content:encoded><![CDATA[<p>We&#8217;re gonna create a simple C# class for doing HTTP requests using proxy. It will only have 2 methods: one for HTTP GET requests and other for POST requests. No error handling is done here so you&#8217;ll have to implement your own.  The code is self-explanatory.</p>
<pre class="brush:csharp">using System;
using System.Collections.Generic;
using System.IO;
using System.Net;

namespace blogtest
{
 class Program
 {
  static void Main(string[] args)
  {
   simplehttp http = new simplehttp();
   //testing on ipcheckit.com so we can make sure we're really connecting through proxy. Look for proxy IP in html printed in console
   //remember to change 127.0.0.1, 8080, login, password to your working proxy details
   string html = http.geturl("http://ipcheckit.com/", "127.0.0.1", 8080, "login", "password");
   System.Console.WriteLine(html);
  }
 }

class simplehttp
{
 public string geturl(string url, string proxyip, int port, string proxylogin, string proxypassword)
 {
  HttpWebResponse resp;
  HttpWebRequest req = (HttpWebRequest)WebRequest.Create(url);
  req.UserAgent = "Mozilla/5.0";
  req.AllowAutoRedirect = true;
  req.ReadWriteTimeout = 5000;
  req.CookieContainer = new CookieContainer();
  req.Referer = "";
  req.Headers.Set("Accept-Language", "en,en-us");
  StreamReader stream_in;

  WebProxy proxy = new WebProxy(proxyip, port);
  //if proxylogin is an empty string then don't use proxy credentials (open proxy)
  if (proxylogin != "") proxy.Credentials = new NetworkCredential(proxylogin, proxypassword);
  req.Proxy = proxy;

  string response = "";
  try
  {
   resp = (HttpWebResponse)req.GetResponse();
   stream_in = new StreamReader(resp.GetResponseStream());
   response = stream_in.ReadToEnd();
   stream_in.Close();
  }
  catch (Exception ex)
  {
  }
  return response;
 }

 public string getposturl(string url, string postdata, string proxyip, short port, string proxylogin, string proxypassword)
 {
  HttpWebResponse resp;
  HttpWebRequest req = (HttpWebRequest)WebRequest.Create(url);
  req.UserAgent = "Mozilla/5.0";
  req.AllowAutoRedirect = true;
  req.ReadWriteTimeout = 5000;
  req.CookieContainer = new CookieContainer();
  req.Method = "POST";
  req.ContentType = "application/x-www-form-urlencoded";
  req.ContentLength = postdata.Length;
  req.Referer = "";

  WebProxy proxy = new WebProxy(proxyip, port);
  //if proxylogin is an empty string then don't use proxy credentials (open proxy)
  if (proxylogin != "") proxy.Credentials = new NetworkCredential(proxylogin, proxypassword);
  req.Proxy = proxy;

  StreamWriter stream_out = new StreamWriter(req.GetRequestStream(), System.Text.Encoding.ASCII);
  stream_out.Write(postdata);
  stream_out.Close();
  string response = "";

  try
  {
   resp = (HttpWebResponse)req.GetResponse();
   Stream resStream = resp.GetResponseStream();
   StreamReader stream_in = new StreamReader(req.GetResponse().GetResponseStream());
   response = stream_in.ReadToEnd();
   stream_in.Close();
  }
  catch (Exception ex)
  {
  }
  return response;
 }
 }
}</pre>
]]></content:encoded>
			<wfw:commentRss>http://blog.proxybonanza.com/programming/simple-c-http-proxy-class/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

