2016-12-20 6 views
0

Итак, я настроил внешнюю (стороннюю) службу для отправки мне данных через push-запросы. В формате этих данных не так много документов, они просто указывают URL-адрес, который принимает POST.Как получить POST, используя C#, не зная содержимого и бросая int переменной?

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

Все примеры, которые я видел, показывают, как отправлять и фиксировать ответ, но я просто хочу записать случайное сообщение, которое я не знаю.

Любые подсказки?

ответ

2

Независимо от формата запроса они посылают к вашему приложению, все будет содержаться в the HttpRequest object (который, если вы просто говорить о Page или что-то подобное, будет/должен быть встроен в качестве .Request собственности этой страницы).

Если запрос имеет значения формы, то свойство .FormData на этом объекте будет NameValueCollection этих значений. Если в корпусе POST есть что-то, то свойство .InputStream на этом объекте будет содержать эти данные. Файлы, заголовки, значения строки запроса и т. Д. Все будут на этом объекте.

Вы можете скопировать все, что захотите, с этого объекта в свои данные, проверить, что вы получаете, возиться, чтобы более точно ориентироваться в значениях, которые они отправляют вам и т. Д. Не зная формат данных, которые они собираются отправить вам, что-то более конкретное потребует проверки того, что они вам отправят, и отформатируйте его формат. Но все данные будут в этом объекте HttpRequest.

0

Свойство InputStream объекта Request можно использовать. Это даст вам необработанные данные HTTP-запроса.

if (Request.RequestType == "POST") 
{ 
    using (StreamReader reader = new StreamReader(Request.InputStream)) 
    { 
     var wholeRequest = reader.ReadToEnd(); 
    } 
} 

Если вы просто хотите тело запроса, вы можете использовать Request.Form.ToString().

if (Request.RequestType == "POST") 
{ 
    var wholeForm = Request.Form.ToString(); 
} 

Я бы не использовать .FormData NameValueCollection, если вы не знаете, что они будут использовать тип содержимого приложения/х-WWW-форм-urlencoded многокомпонентные/form-данных. Другие типы содержимого не будут правильно заполнять эту коллекцию.

 Смежные вопросы

  • Нет связанных вопросов^_^