WebClient 上传数据失败,出现 SSL/TLS 错误

WebClient UploadData fails with SSL/TLS Error

我正在使用 System.Net.WebClient class (https://msdn.microsoft.com/en-us/library/system.net.webclient(v=vs.110).aspx) to communicate with a REST API of a server. I'm able to do most operations without problems, but I can't get the "UploadData" method to work (https://msdn.microsoft.com/en-us/library/ms144221(v=vs.110).aspx)。当我调用该方法时,我得到错误 "Could not create SSL/TLS secure channel." 我没有问题 运行 相应的 "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);
}

我已经为生成的请求尝试了很多不同的 header 设置,但一直没能成功。我很困惑,它抱怨 SSL/TLS 频道问题,但看不出这两个调用在这方面有何不同。

我在配置查询参数时犯了一个错误。显然,必须删除任何先前存在的“?”在将新查询附加到 UriBuilder.Query 属性 时来自查询。所以我基本上必须像他们在这里描述的那样对查询执行 Substring(1):

https://msdn.microsoft.com/en-us/library/system.uribuilder.query(v=vs.110).aspx