#c# #asp.net #http-post
#c# #asp.net #http-post
Вопрос:
У меня есть URL-адрес, и данные публикуются по этому URL-адресу через программное обеспечение ERP от другого поставщика…..Я хочу собрать данные, размещенные на моем URL-адресе в событии загрузки страницы от этого поставщика….Что должно быть сделано для этого в ASP.NET с помощью c #? У него нет имени поля, и он автоматически генерирует строку данных, а затем автоматически отправляет ее в мой ASP.NET страница.
Ответ №1:
Во-первых, если вы знаете, какие данные вы собираетесь получать, вам следует добавить:
Page.Response.ContentType = "text/xml"; //For XML Data
Затем прочитайте эти данные в stream Reader:
StreamReader sr = new StreamReader(Page.Request.InputStream);
Данные в streamreader кодируются по URL. Итак, вы должны расшифровать это, прежде чем использовать это дальше:
string main = Server.UrlDecode(sr.ReadToEnd());
Вот и все. Я надеюсь, что это поможет.
Ответ №2:
var parameter = Request.QueryString["parameterName"];
if (parameter != null)
{
//.. use it
}
Комментарии:
1. они не отправляют данные через строку запроса
Ответ №3:
Я понимаю, вы сказали, что запрос не имеет имени поля; это означает, что вы не можете искать его как обычную строку запроса, используя индексатор строк. Если это так, то вам, вероятно, придется обращаться к нему, не зная ключа запроса.
предполагая, что вы знаете, что «данные» являются первым параметром, вы можете получить к нему доступ следующим образом:
string data = Request.QueryString.getKey(0);
Если это не сработает, вы можете получить доступ к URL напрямую
string query = Request.Url.Query;
Ответ №4:
Если они делают сообщение, вы можете использовать Request.Form
. Он вернет a NameValueCollection
элементов, размещенных на URL, и вы можете перебирать их, если вы не знаете название того, что публикуется. Если вы знаете название, то вы можете сделать Request.Form["NamedItem"]
.
Ответ №5:
foreach(var key in Request)
{
var data = Request[key];
}
будет выполняться итерация по запросу.Строка запроса, запрос.Форма и запрос.Параметры.