使用RestSharp通过代理进行Web请求

时间:2012-08-21 08:42:13

标签: windows-phone-7 restsharp

我正在尝试通过Windows Phone 7上的代理进行webrequest。从我可以看到,Compact Framework不包括为HttpWebRequest对象配置代理。我尝试使用RestSharp,但RestClient也不允许这样做。我也尝试在我的本地计算机上配置Internet选项以使用代理,跳转到我的Windows Phone模拟器上将应用相同的选项。那没用。你有什么想法吗?

4 个答案:

答案 0 :(得分:18)

我花了近50个小时才发现问题,在网上找不到这个简单的解决方案。

在Web.config的“配置”部分下添加:

  <system.net>
    <defaultProxy enabled="true" useDefaultCredentials="true"></defaultProxy>
  </system.net>

然后就像一个魅力!

(更多信息 - MSDN - defaultProxy Element (Network Settings)

答案 1 :(得分:16)

对于来自Google的人来说,如何使用RestSharp设置代理,如果您不在Windows Phone上,至少从版本104.4.0开始,您可以执行以下操作:

var client = new RestClient("http://example.com")
client.Proxy = new WebProxy("http://proxy.example.com")

不知道这是否可以在Windows Phone上运行,因为我不熟悉那里的框架;由于问题的标题不包含Windows Phone,我认为很多像我这样的人会在这里结束,只是搜索如何使用RestSharp设置代理。

答案 2 :(得分:1)

使用方法和类的一些示例: 通话:

            var client = new RestClient(urlbase);
            if(myConfigInstance.ProxyActive) {
                 client.Proxy = GetWebProxy(myConfigInstance);
            }

和方法:

  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;
    }

和班级

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; }
}

答案 3 :(得分:0)

这对我有用。

String url = "some url";

IWebProxy proxy = WebRequest.DefaultWebProxy;
proxy.Credentials = CredentialCache.DefaultCredentials;
RestClient client = new RestClient(url);
{
Proxy = proxy,
};