C # HTTP-запрос с прокси-сервером [дубликат]

Вам нужно как минимум 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
}
29
задан Sebastian 28 October 2012 в 19:05
поделиться

6 ответов


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

2
ответ дан Ayhan Sarıtaş 1 September 2018 в 05:29
поделиться

Ответ, предложенный Джонатаном, является правильным, но требует, чтобы вы указывали учетные данные прокси и url в коде. Как правило, лучше разрешить использование учетных данных как установку в системе по умолчанию (пользователи обычно настраивают параметры LAN в любом случае, если они используют прокси-сервер) ...

Ниже приведен ответ Давиде в более раннем ответе, но это требует изменения файлов app.config. Это решение, вероятно, более полезно, так как оно делает то же самое в CODE.

Чтобы приложение использовало настройки прокси-сервера по умолчанию, используемые в системе пользователя, можно использовать следующий код:

IWebProxy wp = WebRequest.DefaultWebProxy;
wp.Credentials = CredentialCache.DefaultCredentials; 
wc.Proxy = wp;

Это позволит использовать код приложения для использования прокси (с регистрационными учетными данными и настройками URL-адреса прокси-сервера) ... Нет головных болей! :)

Надеюсь, это поможет будущим зрителям этой страницы решить их проблему!

6
ответ дан Bharat Mallapur 1 September 2018 в 05:29
поделиться

Если вам нужно пройти аутентификацию к прокси, вам нужно установить 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");
15
ответ дан Cullub 1 September 2018 в 05:29
поделиться

Я столкнулся с той же проблемой, но с помощью веб-клиента для загрузки файла из Интернета с помощью приложения Winform, которое было добавлено в app.config:

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

То же решение будет работать для приложения asp.net, вставляющего те же строки в web.config.

Надеюсь, это поможет.

9
ответ дан Davide 1 September 2018 в 05:29
поделиться

Мое решение:

WebClient client = new WebClient();
WebProxy wp = new WebProxy(" proxy server url here");
client.Proxy = wp;
string str = client.DownloadString("http://www.google.com");
35
ответ дан eeerahul 1 September 2018 в 05:29
поделиться

Вам нужно настроить прокси-сервер в объекте WebClient.

См. свойство WebClient.Proxy:

http://msdn.microsoft.com/en- нас / библиотека / system.net.webclient.proxy (VS.80) .aspx

6
ответ дан Winston Smith 1 September 2018 в 05:29
поделиться
Другие вопросы по тегам:

Похожие вопросы: