У меня есть довольно простой код, который работал до недавнего времени, пока сайт, на который он отправляет данные, не переключился на https.В режиме отладки (на локальном хосте) я использую прокси с доступом по доменному логину и паролю.В режиме выпуска я использую другой прокси, который не требует учетных данных.Я пытался добавить
ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls12 | SecurityProtocolType.Tls11 | SecurityProtocolType.Tls;
, и это не сработало!Скорее только половина.Запрос отправляется, если учетные данные отправляются как в режиме отладки, но отваливаются за исключением «Основное соединение было закрыто: если вы используете DefaultCredentials. Какой совет вы можете мне дать?
#if DEBUG //OK
NetworkCredential proxyCreds = new NetworkCredential(
"login",
"password"
);
WebProxy proxy = new WebProxy("http://bproxy.com:3131", false)
{
UseDefaultCredentials = false,
Credentials = proxyCreds,
};
HttpClient client = null;
HttpClientHandler httpClientHandler = new HttpClientHandler()
{
Proxy = proxy,
PreAuthenticate = true,
UseDefaultCredentials = false,
};
client = new HttpClient(httpClientHandler);
#else // NOT OK
HttpClientHandler httpClientHandler = new HttpClientHandler()
{
Proxy = new WebProxy(new Uri("http://bproxy.com:3128"))
};
HttpClient client = new HttpClient(httpClientHandler);
#endif
client.BaseAddress = new Uri("http://url.com");
ServicePointManager.SecurityProtocol =
SecurityProtocolType.Tls12 |
SecurityProtocolType.Tls11 |
SecurityProtocolType.Tls;
var values = new Dictionary<string, string>
{
{"_method", "POST" },
{ "data[User][email]", user },
{ "data[User][password]", pass }
};
var content = new FormUrlEncodedContent(values);
var responseString = Post(client, "/", content);