我正在尝试通过Windows Phone 7上的代理进行webrequest。从我可以看到,Compact Framework不包括为HttpWebRequest对象配置代理。我尝试使用RestSharp,但RestClient也不允许这样做。我也尝试在我的本地计算机上配置Internet选项以使用代理,跳转到我的Windows Phone模拟器上将应用相同的选项。那没用。你有什么想法吗?
答案 0 :(得分:18)
我花了近50个小时才发现问题,在网上找不到这个简单的解决方案。
在Web.config的“配置”部分下添加:
<system.net>
<defaultProxy enabled="true" useDefaultCredentials="true"></defaultProxy>
</system.net>
然后就像一个魅力!
答案 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,
};