Запрос к 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); 
      } 
        ...   
 }
Re: Запрос к HTTPS серверу (500) Internal Server Error
От: AlexOb  
Дата: 05.06.07 05:56
Оценка:
CV>System.Net.WebException: The remote server returned an error: (500) Internal Server Error.
CV>at System.Net.HttpWebRequest().GetResponse();


У меня та же проблема. Если она решена, то не могли бы Вы поделиться?
Re: Запрос к HTTPS серверу (500) Internal Server Error
От: Аноним  
Дата: 05.06.07 06:13
Оценка:
Здравствуйте, ChipV, Вы писали:

CV>Помогите советом. Есть такая ситуация. Надо послать запрос на внешний сервер по https и получить от него xml. В инет выхожу через Proxy. Eсли тестить запрос через браузер, то всё ОК. Результат возращается и отображается. Если через клиента, то вылетает на result = reg.GetResponse(); со словами


CV>System.Net.WebException: The remote server returned an error: (500) Internal Server Error.

CV>at System.Net.HttpWebRequest().GetResponse();


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

CV>Есть следущее:

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



Поставьте Fiddler и посмотрите, что уходит с эксплорера, а что с вашей проги.
Re: Запрос к HTTPS серверу (500) Internal Server Error
От: stump http://stump-workshop.blogspot.com/
Дата: 05.06.07 07:11
Оценка:
Здравствуйте, ChipV, Вы писали:

Скорее всего ошибка из-за того, что свойство req.Credentials не установлено.
Понедельник начинается в субботу
Re[2]: Запрос к HTTPS серверу (500) Internal Server Error
От: ChipV  
Дата: 08.06.07 12:25
Оценка:
Проблемма решена. Вся броблемма была на сервере. Он видеде-ли метод POST не лубит. Только GET ест. Отправляю всё GETом и всё ок. Посмотрел бы я на того админа, кто это сделал.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.