HttpClient, как сделать Proxy Connection, чтобы обойти геоблокировку сайтов C # - PullRequest
0 голосов
/ 06 ноября 2018

Я пытаюсь подключиться к прокси через этот кусок кода, используя HttpClient. Я хотел бы подключиться к прокси строго с использованием HttpClient, или, если не смог. использование любой библиотеки c # до тех пор, пока задача будет выполнена.

        HttpClientHandler handler = new HttpClientHandler();
       //setup web proxy and credentials
        var webproxy = 
            new WebProxy("94.232.55.98", 8080)//ip and port number
        {
            UseDefaultCredentials = false,
            Credentials = CredentialCache.DefaultCredentials
        };

        handler = new HttpClientHandler
        {
            Proxy = webproxy,
            UseProxy = true,
            PreAuthenticate = true,
            UseDefaultCredentials = false
        };

        container = new CookieContainer();
        handler.CookieContainer = container;
        handler.UseCookies = true;
        client = new HttpClient(handler);
        //Query a url and get its contents, but the request was not using any proxy seemingly
        HttpResponseMessage responseMessage = client.GetAsync("https://shop.shoprite.com/").Result;

Глядя на код, мне нужно руководство о том, как подключить httpclient к прокси-серверу AU и как получить прокси с учетными данными или без них и заставить его работать все вместе.

Я пытаюсь получить доступ к веб-сайту, заблокированному только в Австралии, поэтому я пытаюсь использовать прокси.

Заранее спасибо!

EDIT:

Я получил свой прокси с этого сайта (просматривая прокси AU) https://free -proxy-list.net / и я получаю первый ip и помещаю его в WebProxy, имея в качестве примера номер порта 8080 enter image description here

но, похоже, он не работает.

Когда я собираюсь запросить сайт, у меня появляется такая ошибка при доступе к сайту, который географически заблокирован где-либо еще, кроме Австралии.

enter image description here

1 Ответ

0 голосов
/ 07 ноября 2018

Похоже, ваш код правильный, однако хост, к которому вы пытаетесь подключиться, недоступен через прокси, который вы пытаетесь использовать. Вы можете получить более полезное сообщение об ошибке, изменив последние несколько строк, чтобы использовать метод EnsureSuccessStatusCode. Это вызовет исключение, если код состояния не 2XX.

using (var client = new HttpClient(handler))
using (var responseMessage = await client.GetAsync("http://shop.shoprite.com/"))
{
    responseMessage.EnsureSuccessStatusCode();
    responseMessage.Dump();
}
...