У меня есть приложение C #, которое отправляет XML-документ на сервер через HTTPS Post.Проблема в том, что сервер получает только первую строку <?xml version="1.0" encoding="UTF-8"?>
.Вот усеченная версия моего кода (только важные части).Что может быть причиной этой проблемы?Есть ли изменения в моем коде?
SSL-соединение с сервером гарантировано, и в ответ я получаю сообщение "тип документа не принят".
спасибо!
StreamWriter loPostData = null;
HttpWebRequest loHttp = null;
HttpWebResponse loWebResponse = null;
byte[] buffer;
String uri = ConfigurationSettings.AppSettings["URL"];
loHttp = (HttpWebRequest)WebRequest.Create(uri);
buffer = Encoding.ASCII.GetBytes(payload);
//Request Header
loHttp.ProtocolVersion = HttpVersion.Version11;
loHttp.KeepAlive = true;
loHttp.Accept = "text/xml;charset=\"utf-8\"";
loHttp.Method = WebRequestMethods.Http.Post;
loHttp.ContentType = "text/xml;charset=\"utf-8\"";
loHttp.ContentLength = buffer.Length;
loHttp.SendChunked = true;
loHttp.TransferEncoding = "7bit";
loHttp.AllowWriteStreamBuffering = true;
ServicePointManager.ServerCertificateValidationCallback += delegate(object sender, X509Certificate certificate, X509Chain chain, SslPolicyErrors sslPolicyErrors)
{
return true; // **** Always accept return
};
X509Certificate x509_1 = new X509Certificate(ConfigurationSettings.AppSettings["OPEN_INVOICE_CERTIFICATE"]);
loHttp.ClientCertificates.Add(x509_1);
//Send data
loPostData = loHttp.GetRequestStream();
loPostData.Write(buffer, 0, buffer.Length);
loPostData.Close();
//Get a response
loWebResponse = (HttpWebResponse)loHttp.GetResponse();
StreamReader responsestream = new StreamReader(loWebResponse.GetResponseStream());
String rsp = responsestream.ReadToEnd();
responsestream.Close();