Ziee-M Ответов: 1

Asp.net post XML, выпуск специальных символов


Всем привет,

Я работаю над проектом, где 2 веб-приложения должны общаться друг с другом (1 способ связи).
Первое веб-приложение публикует xml-данные в нашем веб-приложении.
Всякий раз, когда в xml-данных есть специальные карактеры, получатель получает поврежденные данные.
Есть ли способ избежать этого в приложении reciver ?

Я знаю, что могу использовать некоторые HtmlEncrypt/HtmlDecrypt, но если это возможно, я не хочу заставлять клиента делать какую-либо работу.

Что я уже пробовал:

Вот код отправки xml :

<pre>HttpResponse response = HttpContext.Current.Response;
            response.Clear();

            StringBuilder s = new StringBuilder();
            s.Append("<html>");
            s.Append("<body onload='document.forms[\"form\"].submit()'>");
            s.AppendFormat("<form name='form' action='{0}' method='post'>", url);
            s.AppendFormat("<input type='hidden' name='xmlData' value='{0}' />", xmlData);
            s.Append("</form></body></html>");
            response.Write(s.ToString());
            response.End();


Это только для тестов, я понятия не имею, как клиент будет это делать, и какие технологии он использует.

И это вам сообщение в формате XML

<pre>private string GetPostXmlData()
        {
            string[] keys = Request.Form.AllKeys;
            string value = String.Empty;
            if (keys.Length > 0)
                value = Request.Form[keys[0]];

            return value;
        }



спасибо.

1 Ответов

Рейтинг:
7

F-ES Sitecore

s.AppendFormat("<input type='hidden' name='xmlData' value='{0}' />", System.Net.WebUtility.HtmlEncode(xmlData));


Ziee-M

Я принимаю этот ответ даже после того, как сказал в своем описании, что это неверное решение.
Я хотел управлять этим в своем коде приемника, а не в отправителе(отправитель будет разработан каким-то другим разработчиком).

F-ES Sitecore

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

Ziee-M

Действительно, Вы правы, но если я смогу справиться с этим своим кодом, это будет еще лучше.

F-ES Sitecore

Мы не знаем, как выглядят поврежденные данные, поэтому невозможно сказать, как с ними обращаться.

Ziee-M

Все, что угодно после удаления специального символа. Но, нет необходимости в дальнейшей помощи, вы совершенно правы,это их работа-кодировать данные перед их отправкой!
Спасибо снова.