Загрузка данных 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

Другие вопросы по тегам