收到“握手失败,数据包格式异常”;当WebClient.UploadFile()使用"https"当

本文关键字:quot WebClient UploadFile 使用 https 失败 握手失败 异常 格式 数据包 收到 | 更新日期: 2023-09-27 18:16:39

我正在尝试使用WebClient。带有HTTPS URL的UploadFile,但最后是

"先。IOException:由于意外导致握手失败数据包格式"

相同的代码在Http下工作得很好,但我试图击中的服务器有一个非常好的ssl证书。以下是与web调用相关的内容:

var url = WebServiceCommunication.GetProtocolName() + "..."; //turns out to be     "https://...
var wc = new WebClient();
//I am adding: 
wc.Headers.Add(HttpRequestHeader.KeepAlive, "...")
wc.Headers.Add(HttpRequestHeader.AcceptLanguage, "...")
we.Headers.Add(HttpRequestHeader.Cookie, "...")
wc.UploadFile(url, "POST", filename);

是否有任何我正在添加和使用https的HttpRequestHeaders的问题?或者我错过了一个必要的头,如果我想使用https?有没有人有任何指针,为什么这将与HTTP工作,而不是HTTPS当SSL证书是有效的?

收到“握手失败,数据包格式异常”;当WebClient.UploadFile()使用"https"当

您必须确保您连接的端口是443端口而不是80端口。

在URL中显式设置端口的示例:

var request = (HttpWebRequest) WebRequest.Create("https://example.com:443/");
request.Method = "GET";
request.UserAgent = "example/1.0";
request.Accept = "*/*";
request.Host = "example.com";
var resp = (HttpWebResponse) request.GetResponse();

如果你像我一样笨,不知道你的web服务器项目已经崩溃,不再运行,你也可以得到这个错误。