在我的C# Windows客户端中,我有一个提交到“母舰”的POST请求。当然,我希望提交的数据是安全的,所以我付款让HostGator为我签发了SSL证书。
我保存了.CER文件,并构造了如下的请求:
//wrapper for WebClient object to use certificate file
class SecureWebClient : WebClient
{
protected override WebRequest GetWebRequest(Uri address)
{
HttpWebRequest request = (HttpWebRequest)base.GetWebRequest(address);
string certPath = @"e:\mycertificate.cer";
X509Certificate myCert = X509Certificate.CreateFromCertFile(certPath);
request.ClientCertificates.Add(myCert);
return request;
}
}
//request
private static SecureWebClient client = new SecureWebClient();
private static NameValueCollection = new NameValueCollection();
nvc.Add(POST_ACTION, ACTION_CODE_LOGIN);
nvc.Add(POST_EMAIL, email);
nvc.Add(POST_PASSWORD, password);
sResponse = System.Text.Encoding.ASCII.GetString(client.UploadValues(BASE_URL + ACTION_PAGE, nvc));
它抛出了一个System.Net.WebException异常:
底层连接已关闭:发送时发生了意外错误。
InnerException是一个System.IO.IOException异常:
握手失败,因为出现了意外的数据包格式。
对于我的错误有什么见解吗?