HTTPS URLでWebClient.UploadFileを使用しようとしていますが、最終的には
「System.IO.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);
私が追加しているHttpRequestHeadersのいずれかで問題があり、HTTPSを使用していますか?または、httpsを使用する場合に必要なヘッダーがありませんか? SSL証明書が有効な場合、HTTPSではなくHTTPで機能する理由について、誰かが何かポインタを持っていますか?
接続先のポートがポート80ではなくポート443であることを確認する必要があります。
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();