HTTP Post XML document - сервер получает только первую строку - PullRequest
0 голосов
/ 22 октября 2010

У меня есть приложение 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();

Ответы [ 2 ]

0 голосов
/ 05 ноября 2010

Оказывается, линии
loHttp.SendChunked = true;<br> loHttp.TransferEncoding = "7bit";
не были нужны.

0 голосов
/ 22 октября 2010

Исходя из того, что вы получаете сообщение об ошибке, вы уверены, что страница, которую вы вызываете, ДЕЙСТВИТЕЛЬНО хочет, чтобы тип контента был text / xml?Возможно, вам нужно опубликовать его как стандартный веб-запрос, а не отправлять HTML-файл напрямую по типу контента.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...