.Net Streamwriter ставит восклицательный знак в XML-канале

При использовании HttpWebRequest для отправки данных xml post на удаленный сервер он вставляет восклицательные знаки во все данные xml при их отправке, в результате чего сервер SOAP отклоняет их и разрывает соединение. У меня есть отправитель формы HTML, и он отлично отправляет xml в текстовую область без ошибок.

Вот моя базовая логика страницы для отправки данных xml, я также пытался использовать массив байтов, но получил те же ошибки.

Dim submitPage As HttpWebRequest = WebRequest.Create(requestUrl)
submitPage.Method = "POST"
Dim postData As StringBuilder = New StringBuilder()
postData.Append("Submit+XML=Submit&xmldata=" & System.Web.HttpUtility.UrlEncode(CompiledXML))

Dim writer As StreamWriter = Nothing
submitPage.ContentLength = postData.ToString().Length
writer = New StreamWriter(submitPage.GetRequestStream())
writer.Write(postData.ToString())
writer.Close()

Итак, что здесь происходит, так это то, что я беру мою XML-строку и помещаю ее в сообщение, но также добавляю восклицательные знаки примерно через каждые 10 строк.

Я работал над этой проблемой пару дней без везения.


person Paito    schedule 18.06.2012    source источник
comment
Может быть, вы можете разбить код и попробовать разные биты - это может быть UrlEncode - записать UrlEncode (compiledXML) на диск и проверить, или, может быть, транспортный уровень, который делает это, вы можете запустить fiddler и посмотреть фактический http сообщение выходит из VS просто для проверки.   -  person Symeon Breen    schedule 18.06.2012
comment
Также какой тип строки скомпилированXML, например. utf-8/iso8859-1 и т. д.?   -  person Symeon Breen    schedule 18.06.2012


Ответы (1)


Это была ошибка в PHP на удаленном сервере, где, если у вас есть строка определенной длины, и вы вставляете ее в функцию электронной почты без разрывов строки, она ставит для вас восклицательные знаки. Очень странное поведение, но именно это и происходило здесь.

person Paito    schedule 21.06.2012