Помогите советом. Есть такая ситуация. Надо послать запрос на внешний сервер по 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);
}
...
}