Я пытаюсь проверить наши сертификаты SSL с помощью программы, но у меня есть проблема; Я не могу использовать второй HttpWebRequest из-за чего-то, чего я не знаю. Я предположил, что это проблема с кешем, и использовал все коды без кэша, которые я знаю. Поскольку вы можете видеть, что серверы находятся в нашей частной подсети, а на 1 сервере много приложений IIS. Из-за этого я изменяю переменную «request.Host» на наши соответствующие привязки IIS для открытия сайтов. Всегда второй не работает, но первый работает хорошо. В чем проблема?C# WebRequest (400) Плохой запрос при втором вызове
HttpWebRequest request = (HttpWebRequest)WebRequest.Create("https://" + "10.10.11.100");
request.AllowAutoRedirect = false;
request.Host = "www.xxx.com";
request.Timeout = 30 * 1000;
request.Headers.Add("Cache-Control", "no-cache");
request.Referer = null;
request.CachePolicy = new HttpRequestCachePolicy(HttpRequestCacheLevel.NoCacheNoStore);
using (HttpWebResponse response = (HttpWebResponse)request.GetResponse())
{
//retrieve the ssl cert and assign it to an X509Certificate object
X509Certificate cert = request.ServicePoint.Certificate;
//convert the X509Certificate to an X509Certificate2 object by passing it into the constructor
X509Certificate2UI.DisplayCertificate(new X509Certificate2(cert));
}
HttpWebRequest request2 = (HttpWebRequest)WebRequest.Create("https://" + "10.10.11.100");
request2.AllowAutoRedirect = false;
request2.Host = "www.yyy.com";
request2.Timeout = 30 * 1000;
request2.Headers.Add("Cache-Control", "no-cache");
request2.Referer = null;
request2.CachePolicy = new HttpRequestCachePolicy(HttpRequestCacheLevel.NoCacheNoStore);
using (HttpWebResponse response2 = (HttpWebResponse)request2.GetResponse())
{
//retrieve the ssl cert and assign it to an X509Certificate object
X509Certificate cert2 = request2.ServicePoint.Certificate;
//convert the X509Certificate to an X509Certificate2 object by passing it into the constructor
X509Certificate2UI.DisplayCertificate(new X509Certificate2(cert2));
}
Ошибка:
The remote server returned an error: (400) Bad Request.
Исключение строки:
using (HttpWebResponse response2 = (HttpWebResponse)request2.GetResponse())
Статус: ProtocolError
InternalStatus: RequestFatal
Вы попробовали обменять заказ, чтобы узнать, не является ли проблема со вторым сервером? – WillG
Да, я сделал. Если я изменяю порядок, первый работает как раньше. –