我有一个需要安全证书的 cURL 命令。我正在尝试用 C# 中的 WebRequest 替换调用。
这是 curl 命令:
curl -d "uid=UUUUUU&password=PPPPPP&active=Y&type=I" https://www.aidap.naimes.faa.gov/aidap/XmlNotamServlet --key aidap_key.pem --cacertaidap_ca.pem --certaidap_client.pem:开始123 -k -O
我被困的地方是如何合并--key、--cacert 和--cert 参数。目前我正在设置 WebRequest.PreAuthenticate=true 并使用我的证书存储中的安全证书的名称和密码创建 NetworkCredential(我假设在 --key、--cacert 等中)。
当我运行下面的代码时,我收到了 403 禁止异常。
有任何想法吗?
这是我正在使用的代码:
public void RetrieveNotams()
{
string myURL = "https://www.aidap.naimes.faa.gov/aidap/XmlNotamServlet";
HttpWebRequest req;
NetworkCredential myCred = new NetworkCredential("AAAAA", "BBBBB");
req = (HttpWebRequest)WebRequest.Create(myURL);
req.PreAuthenticate = true;
req.Credentials = myCred;
req.Method = "POST";
req.ContentType = "application/x-www-form-urlencoded";
string postData = "uid=UUUUUU&password=PPPPPP&active=Y&type=I";
byte[] byteArray = Encoding.UTF8.GetBytes(postData);
req.ContentLength = byteArray.Length;
using (Stream dataStream = req.GetRequestStream())
{
dataStream.Write(byteArray, 0, byteArray.Length);
dataStream.Close();
}
req.GetResponse();
}