У нас есть веб-страница в нашем проекте, где веб-сайт публикует данные XML.Задача десериализации для временной метки в ASP.NET
string data = string.Concat("XMLParameter=", SampleXML, "&", "AccessCode=", "XYZ");
if (uri.Scheme == Uri.UriSchemeHttp)
{
HttpWebRequest request = (HttpWebRequest)HttpWebRequest.Create(uri);
request.Method = WebRequestMethods.Http.Post;
request.ContentLength = data.Length;
request.ContentType = "application/x-www-form-urlencoded";
StreamWriter writer = new StreamWriter(request.GetRequestStream());
writer.Write(data);
writer.Close();
HttpWebResponse response = (HttpWebResponse)request.GetResponse();
StreamReader reader = new StreamReader(response.GetResponseStream()); string tmp = reader.ReadToEnd();
response.Close();
Response.Write(tmp);
}
Когда мы проходим следующий XML с почтой,
<notification timestamp="2009-09-11T11:51:07+02:00">
<reservation creation_date="2010-09-10T12:03:13">
</reservation>
</notification>
На приемном конце в нашей веб-странице, метка времени мы получаем не содержат +. Вместо + это дает нам пространственный характор. Поэтому, десериализируя это, мы получили ошибку.
Мы получаем данные в страницу с помощью Request.Form [ "XMLParameter"]
Любое решение ???
Кодо, кажется, смешно, но это не так. Фактически мы делаем веб-сервисы для интеграции с другими веб-сайтами. Но некоторые из старых сайтов или php-сайтов используют POST для отправки нам данных. И вы знаете, что заставить их использовать веб-сервис трудно: P. Во всяком случае, извините, если я не смог бы написать объяснение, которое полностью очистило бы то, что я хотел. Но я думаю, что я должен попробовать с этим и продолжить работу с третьей стороной, чтобы отправить нам образец и посмотреть, будет ли он набирать url-код или нет? Есть ли какой-либо вариант, если они отправляют URL-адрес, кодированный url: P. Как я уже сказал, я не мог их изменить :) –
Им нужно отправить URL-адрес в кодировку. В противном случае вы не сможете разбить данные на параметры XMLParameter и AccessCode. Этого не должно быть слишком сложно достичь в PHP, поскольку он содержит встроенную функцию _urlencode_. – Codo
Да. но я не знаю, что они используют, поскольку они являются сторонними людьми. Они просто сказали нам, что они отправят нам данные для публикации и данные выше. Позвольте мне поговорить с ними и посмотреть, что их ответ. Я думаю, что они должны пройти urlencoded в соответствии с вашим ответом. –