I\'m trying to make a webrequest through a proxy on Windows phone 7. From what I can see the Compact Framework does not include the configuring of a proxy for the HttpWebReq
For people coming from Google looking how to set a proxy with RestSharp, if you are not on Windows Phone, at least as of version 104.4.0 you can do the following:
var client = new RestClient("http://example.com")
client.Proxy = new WebProxy("http://proxy.example.com")
Don't know whether this would work on Windows Phone since I am not familiar with the framework there; since the title of the question did not contain Windows Phone I thought that many like myself would end up here, just searching about how to setup the proxy with RestSharp.
Under "configuration" section in Web.config add this:
<system.net>
<defaultProxy enabled="true" useDefaultCredentials="true"></defaultProxy>
</system.net>
(for more more info - MSDN - defaultProxy Element (Network Settings))
Some example using a method and a class: The call:
var client = new RestClient(urlbase);
if(myConfigInstance.ProxyActive) {
client.Proxy = GetWebProxy(myConfigInstance);
}
and the method:
public static WebProxy GetWebProxy(ProxySettings proxySettings)
{
WebProxy proxy;
try
{
proxy = new WebProxy(proxySettings.Server, Int32.Parse(proxySettings.Port))
{
Credentials = new NetworkCredential(proxySettings.Username, proxySettings.Password, proxySettings.Domain)
};
}
catch (Exception ex)
{
throw new Exception("Error");
}
return proxy;
}
and the class:
public class ProxySettings
{
public bool ProxyActive { get; set; }
public string Port { get; set; }
public string Server { get; set; }
public string Username { get; set; }
public string Password { get; set; }
public string Domain { get; set; }
}
This worked for me.
String url = "some url";
IWebProxy proxy = WebRequest.DefaultWebProxy;
proxy.Credentials = CredentialCache.DefaultCredentials;
RestClient client = new RestClient(url);
{
Proxy = proxy,
};