WebClient UploadData因SSL / TLS错误

时间:2018-01-29 12:03:44

标签: c# webclient webclient.uploaddata

我正在使用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 个答案:

答案 0 :(得分:0)

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

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