Как исправить запрос PostAsync на C#, который не учитывает мой прокси?C#

Место общения программистов C#
Ответить
Anonymous
 Как исправить запрос PostAsync на C#, который не учитывает мой прокси?

Сообщение Anonymous »

Я разрабатываю WPF.dll с .NetFramework 4.6.1, и мои службы используют HTTP-запросы для доступа к моему серверу функций Azure. Я создал интерфейс для изменения пользовательских настроек и определения использования прокси-сервера, но мои запросы не учитывают его.
Это статический класс, который я использую для настройки моего HttpClient. и получить к нему доступ через getHttpClient() :

Код: Выделить всё

public static class ConnexionService
{

private static HttpClient httpClient;
private static HttpClientHandler clientHandler = new HttpClientHandler();

public static void SetupProxy()
{
try
{
if (Properties.Settings.Default.ProxyUsage)
{
// Adresse et port du serveur proxy
Uri proxyAddress = new Uri($"http://{Properties.Settings.Default.ProxyAdress}:{Properties.Settings.Default.ProxyPort}");

// Création de l'objet proxy
WebProxy proxy = new WebProxy(Address: proxyAddress, BypassOnLocal: false)
{
UseDefaultCredentials = false,
Credentials = new NetworkCredential(
userName: Properties.Settings.Default.ProxyUser,
password: Properties.Settings.Default.ProxyPassword)

};

// Création de l'objet HttpClientHandler et configuration pour utiliser le proxy
clientHandler = new HttpClientHandler()
{
UseProxy = true,
Proxy = proxy
};
httpClient = new HttpClient(handler: clientHandler, disposeHandler: true);
}
else {
httpClient = new HttpClient();
}
}
catch(Exception e)
{
Console.WriteLine(e.ToString());
}
}

public static HttpClient getHttpClient()
{
SetupProxy();
return httpClient;
}
}
И вот как я использую это в одном из своих сервисов:

Код: Выделить всё

public class AuthenticationService
{
private readonly string Path = $"{Properties.Settings.Default.URL_API_DEV}/authentication";

public async Task
 LogIn(Profile profile)
{
var encryption = new Encryption();

HttpContent content = new StringContent(encryption.Encrypt(JsonConvert.SerializeObject(profile)), Encoding.UTF8, "text/plain");
try
{
using (var client = ConnexionService.getHttpClient())
{
var endpoint = new Uri($"{Path.Trim()}/login");

var send = await client.PostAsync(endpoint, content);

if (!send.IsSuccessStatusCode)
{
Console.WriteLine($"Erreur : {send.StatusCode}");
return new Profile();
}

var encryptedResult = await send.Content.ReadAsStringAsync();
var decryptedResult = encryption.Decrypt(encryptedResult);
var response = JsonConvert.DeserializeObject(decryptedResult);
return response;

}

}
catch (HttpRequestException e)
{
Console.WriteLine($"Erreur : {e.Message}");
return new Profile();
}
}

Спасибо, что дочитали до этого момента!


Подробнее здесь: https://stackoverflow.com/questions/782 ... nt-my-prox
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C#»