Вам нужно как минимум 1 уровень наследования и понизить, чтобы продемонстрировать это. Вот очень простой пример:
class Animal
{
public:
// turn the following virtual modifier on/off to see what happens
//virtual
std::string Says() { return "?"; }
};
class Dog: public Animal
{
public: std::string Says() { return "Woof"; }
};
void test()
{
Dog* d = new Dog();
Animal* a = d; // refer to Dog instance with Animal pointer
cout << d->Says(); // always Woof
cout << a->Says(); // Woof or ?, depends on virtual
}
byte[] data; using (WebClient client = new WebClient()) { ICredentials cred; cred = new NetworkCredential("xmen@test.com", "mybestpassword"); client.Proxy = new WebProxy("192.168.0.1",8000); client.Credentials = cred; string myurl="http://mytestsite.com/source.jpg"; data = client.DownloadData(myUrl); } File.WriteAllBytes(@"c:\images\target.jpg", data);
Ответ, предложенный Джонатаном, является правильным, но требует, чтобы вы указывали учетные данные прокси и url в коде. Как правило, лучше разрешить использование учетных данных как установку в системе по умолчанию (пользователи обычно настраивают параметры LAN в любом случае, если они используют прокси-сервер) ...
Ниже приведен ответ Давиде в более раннем ответе, но это требует изменения файлов app.config. Это решение, вероятно, более полезно, так как оно делает то же самое в CODE.
Чтобы приложение использовало настройки прокси-сервера по умолчанию, используемые в системе пользователя, можно использовать следующий код:
IWebProxy wp = WebRequest.DefaultWebProxy;
wp.Credentials = CredentialCache.DefaultCredentials;
wc.Proxy = wp;
Это позволит использовать код приложения для использования прокси (с регистрационными учетными данными и настройками URL-адреса прокси-сервера) ... Нет головных болей! :)
Надеюсь, это поможет будущим зрителям этой страницы решить их проблему!
Если вам нужно пройти аутентификацию к прокси, вам нужно установить UseDefaultCredentials
на false
и установить прокси Credentials
.
WebProxy proxy = new WebProxy();
proxy.Address = new Uri("mywebproxyserver.com");
proxy.Credentials = new NetworkCredential("usernameHere", "pa****rdHere"); //These can be replaced by user input
proxy.UseDefaultCredentials = false;
proxy.BypassProxyOnLocal = false; //still use the proxy for local addresses
WebClient client = new WebClient();
client.Proxy = proxy;
string doc = client.DownloadString("http://www.google.com/");
Если все, что вам нужно, это простой прокси-сервер, вы пропускаете большинство строк выше. Все что вам нужно:
WebProxy proxy = new WebProxy("mywebproxyserver.com");
Я столкнулся с той же проблемой, но с помощью веб-клиента для загрузки файла из Интернета с помощью приложения Winform, которое было добавлено в app.config:
<system.net>
<defaultProxy useDefaultCredentials="true" />
</system.net>
То же решение будет работать для приложения asp.net, вставляющего те же строки в web.config.
Надеюсь, это поможет.
Мое решение:
WebClient client = new WebClient();
WebProxy wp = new WebProxy(" proxy server url here");
client.Proxy = wp;
string str = client.DownloadString("http://www.google.com");
Вам нужно настроить прокси-сервер в объекте WebClient.
См. свойство WebClient.Proxy:
http://msdn.microsoft.com/en- нас / библиотека / system.net.webclient.proxy (VS.80) .aspx