Запрос к HTTPS серверу (500) Internal Server Error
От: ChipV  
Дата: 22.05.07 07:07
Оценка:
Помогите советом. Есть такая ситуация. Надо послать запрос на внешний сервер по https и получить от него xml. В инет выхожу через Proxy. Eсли тестить запрос через браузер, то всё ОК. Результат возращается и отображается. Если через клиента, то вылетает на result = reg.GetResponse(); со словами

System.Net.WebException: The remote server returned an error: (500) Internal Server Error.
at System.Net.HttpWebRequest().GetResponse();


Логи Proxy или внешнего сервера посмотреть не могу. Для меня они чёрный ящик. Вот и не знаю из-за чего падает прога, с учётом того что из браузера всё работает.
Есть следущее:

private void butSend_Click(object sender, EventArgs e)
 { 
      WebResponse result = null;    
      WebRequest reg = null;  
      Stream newStream = null;  
      Stream ReceiveStream = null;  
      StreamReader sr = null;  
     try   
     {       
     // для проверки сертификата                                             
     System.Net.ServicePointManager.CertificatePolicy = new TrustAllCertificatePolicy();   
     // Url запрашиваемого скрипта   
      try     
      {    
         Uri newUri = new Uri(SomeHost);   
         reg = WebRequest.Create(newUri);   
      }   
      catch (UriFormatException uriException)   
      { 
           MessageBox.Show("Неправильная строка запроса " + uriException);    
      }    
      reg.Method = "POST";    
      reg.PreAuthenticate = true;   
      reg.Timeout = 120000; 
      // Proxy через который выхожу в инет  
      reg.Proxy = new WebProxy("198.1.11.111", 3128);    
      reg.Proxy.Credentials = new NetworkCredential("UserName", "Pass");  
      reg.ContentType = "application/x-www-form-urlencoded";   
      byte[] SomeBytes = null;    
      SomeBytes = Encoding.Default.GetBytes("ACT=" + ACT + "&USERNAME=" + name + "&PASSWORD=" + pass + "&MSISDN=" + phone);     
      reg.ContentLength = SomeBytes.Length;   
      newStream = reg.GetRequestStream();   
      newStream.Write(SomeBytes, 0, SomeBytes.Length);  
      newStream.Close();
      // считываю результат запроса 
      result = reg.GetResponse();  // вот тут вылетает !!!   
      ReceiveStream = result.GetResponseStream();  
      ...  
      ...    
      catch (Exception ex)  
      {       
             MessageBox.Show("Ошибка https запроса \r\n" + ex); 
      } 
        ...   
 }
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.