我正在使用System.Net.WebClient类(https://msdn.microsoft.com/en-us/library/system.net.webclient(v=vs.110(.aspx(与服务器的REST API进行通信。我可以毫无问题地执行大多数操作,但我无法让"上传数据"方法工作(https://msdn.microsoft.com/en-us/library/ms144221(v=vs.110(.aspx(。当我调用该方法时,出现错误"无法创建SSL/TLS安全通道"。不过,运行相应的"上传字符串"方法没有问题。有谁知道可能出了什么问题?
总而言之,此方法有效:
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通道问题,并且看不到这两个调用在这方面有何不同。
我在配置查询参数时犯了一个错误。显然,在将新查询附加到 UriBuilder.Query 属性时,必须从查询中删除任何预先存在的"?"。所以我基本上不得不对查询做一个子字符串(1(,就像他们在这里描述的那样:
https://msdn.microsoft.com/en-us/library/system.uribuilder.query(v=vs.110(.aspx