Я пытаюсь сделать webrequest через прокси на телефоне Windows 7. Из того, что я вижу, Compact Framework не включает настройку прокси для объекта HttpWebRequest. Я попытался использовать RestSharp, но RestClient также не позволяет этого. Я также попробовал настроить параметры Интернета на моей локальной машине, чтобы использовать прокси-сервер, скачу, что те же самые параметры будут применены к моему эмулятору Windows Phone. Это не сработало. У вас есть идеи?
Веб-запрос через прокси с помощью RestSharp
Ответ 1
Под разделом "конфигурации" в Web.config добавьте это:
<system.net>
<defaultProxy enabled="true" useDefaultCredentials="true"></defaultProxy>
</system.net>
(для получения дополнительной информации - MSDN - Элемент defaultProxy (Настройки сети))
Ответ 2
Для людей, приезжающих из 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.
Ответ 3
Пример использования метода и класса: Звонок:
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; }
}
Ответ 4
Это сработало для меня.
String url = "some url";
IWebProxy proxy = WebRequest.DefaultWebProxy;
proxy.Credentials = CredentialCache.DefaultCredentials;
RestClient client = new RestClient(url);
{
Proxy = proxy,
};