Загрузка данных WebClient завершается с ошибкой SSL/TLS
Я использую класс System.Net.WebClient ( https://msdn.microsoft.com/en-us/library/system.net.webclient(v=vs.110).aspx) для взаимодействия с REST API сервер. Я могу выполнять большинство операций без проблем, но не могу заставить работать метод "UploadData" ( https://msdn.microsoft.com/en-us/library/ms144221(v=vs.110).aspx). Когда я вызываю этот метод, я получаю сообщение об ошибке "Не удалось создать безопасный канал SSL/TLS". У меня нет проблем с запуском соответствующего метода "UploadString". У кого-нибудь есть идеи, что может быть не так?
Подводя итог, этот метод работает:
public string Post(string endpoint, string body)
{
return UploadString(new Uri(Uri, endpoint), body);
}
Но это не удается
public byte[] Post(string endpoint, byte[] body)
{
return UploadData(new Uri(Uri, endpoint), body);
}
Я много экспериментировал с различными настройками заголовка для полученного запроса, но не смог заставить его работать. И я довольно озадачен тем, что он жалуется на проблему с каналом SSL/TLS и не видит, как эти два вызова отличаются друг от друга.
1 ответ
Я сделал ошибку в настройке параметров запроса. По-видимому, нужно удалить все существующие ранее '?' из запроса при добавлении нового запроса в свойство UriBuilder.Query. Таким образом, я в основном должен был сделать Substring(1) для запроса, как они описывают здесь:
https://msdn.microsoft.com/en-us/library/system.uribuilder.query(v=vs.110).aspx