2012-05-25 16 views
6

Ho bisogno di connettersi a un sito Web utilizzando un server proxy. Posso farlo manualmente, ad esempio posso utilizzare il proxy online http://zend2.com e quindi navigare su www.google.com. Ma questo deve essere fatto a livello di programmazione. So che posso usare la classe WebProxy ma come posso scrivere un codice in modo da poter utilizzare un server proxy?connettersi al sito Web utilizzando un server proxy gratuito a livello di programmazione

Chiunque può fornirmi uno snippet di codice come esempio o qualcosa del genere?

grazie

+0

Sai che puoi usare 'WebProxy'. Questa è la soluzione. Cosa hai provato? Cosa intendi per "connettere un sito web"? usando il browser? Usando una richiesta web # c? –

+0

Sì nel titolo si può leggere che voglio farlo a livello di programmazione (quindi utilizzando C#) – Ozkan

+0

a livello di programmazione cosa? Entrambe le ipotesi che ho scritto possono essere eseguite a livello di programmazione –

risposta

1

comprensione di opere zend2, è possibile popolare un URL simile a questo:

http://zend2.com/bro.php?u=http%3A%2F%2Fwww.google.com&b=12&f=norefer

per la navigazione di Google.

I C#, costruire l'url in questo modo:

string targetUrl = "http://www.google.com"; 
string proxyUrlFormat = "http://zend2.com/bro.php?u={0}&b=12&f=norefer"; 
string actualUrl = string.Format(proxyUrlFormat, HttpUtility.UrlEncode(targetUrl)); 

// Do something with the proxy-ed url 
HttpWebRequest req = (HttpWebRequest)WebRequest.Create(new Uri(actualUrl)); 
HttpWebResponse resp = req.GetResponse(); 

string content = null; 
using(StreamReader sr = new StreamReader(resp.GetResponseStream())) 
{ 
    content = sr.ReadToEnd(); 
} 

Console.WriteLine(content); 
+0

Grazie per la tua risposta @Steve B. Ma il primo link che hai dato riempie solo la casella di testo in zend2 ma in realtà non va a 'google.com' – Ozkan

+0

Sospetto che il sito produca un cookie. L'URL funziona sul mio browser, ma non con un altro browser. Dovrai simulare un post http sulla pagina, quindi tenere traccia dei cookie per farlo funzionare –

+0

In realtà, l'uso di zend2 non è obbligatorio. Posso anche utilizzare un server proxy pubblico che ho appena trovato http://hidemyass.com/proxy-list/search-225490. Grazie per lo sforzo. – Ozkan

0

È possibile utilizzare il codice WebProxy Class

MSDN

WebProxy proxyObject = new WebProxy("http://proxyserver:80/",true); 
WebRequest req = WebRequest.Create("http://www.contoso.com"); 
req.Proxy = proxyObject; 

Nel tuo caso

WebProxy proxyObject = new WebProxy("http://zend2.com",true); 
WebRequest req = WebRequest.Create("www.google.com"); 
req.Proxy = proxyObject; 
+0

@ user1410501 si. si prega di leggere la documentazione per la comprensione completa http://msdn.microsoft.com/en-us/library/system.net.webproxy.aspx – ABH

+0

Non penso che funzionerà perché zend2.com è solo un sito web che offre andare su un sito web usando il proxy manualmente? – Ozkan

+0

@ user1410501 per favore controlla questo post http://stackoverflow.com/questions/2175104/how-to-access-the-internet-through-proxy-in-c-sharp – ABH

Problemi correlati