Как зайти в Даркнет?!
25th January, 01:11
8
0
Как в tkinter из поля ввода Entry получить значение в одну переменную и обновить строку кнопкой, затем получить ещё одно введённое значение и затем сложить их. Ниже пример кода
21st July, 19:00
899
0
Программа, которая создает фейковые сервера в поиске игровых серверов CS 1.6 Steam
21st March, 17:43
952
0
Очень долго работает Update запрос Oracle
27th January, 09:58
916
0
не могу запустить сервер на tomcat HTTP Status 404 – Not Found
21st January, 18:02
907
0
Где можно найти фрилансера для выполнения поступающих задач, на постоянной основе?
2nd December, 09:48
942
0
Разработка мобильной кроссплатформенной военной игры
16th July, 17:57
1727
0
период по дням
25th October, 10:44
3957
0
Пишу скрипты для BAS только на запросах
16th September, 02:42
3722
0
Некорректный скрипт для закрытия блока
14th April, 18:33
4614
0
прокидывать exception в блоках try-catch JAVA
11th March, 21:11
4382
0
Помогите пожалуйста решить задачи
24th November, 23:53
6088
0
Не понимаю почему не открывается детальное описание продукта
11th November, 11:51
4352
0
Нужно решить задачу по программированию на массивы
27th October, 18:01
4400
0
Метода Крамера С++
23rd October, 11:55
4309
0
помогите решить задачу на C++
22nd October, 17:31
4002
0
Помогите решить задачу на python с codeforces
22nd October, 11:11
4492
0
Python с нуля: полное руководство для начинающих
18th June, 13:58
2599
0
Обработать содержимое запроса raw HTTP
Я делаю решение для электронной коммерции в ASP.NET, которое использует стандартный сервис платежей на веб-сайте PayPal . Вместе с этим я использую услугу, которую они предлагают ( передача платежных данных), которая отправляет вам информацию о заказе после того, как пользователь завершил платеж. Последнее, что мне нужно сделать, это проанализировать запрос POST от них и сохранить информацию в нем. Содержимое запроса HTTP находится в этой форме :
SUCCESS
имя=Джейн+Мэ
фамилия=Smith
payment_status=завершено
payer_email=janedoesmith%40hotmail.com
payment_gross=3.99
mc_currency=USD
заказ=по+С+купить+в+о+редкая+книга+зеленый+яйца+%26+ветчина
В основном я хочу разобрать эту информацию и сделать что-то значимое, например, отправить ее по электронной почте или сохранить в DB. Мой вопрос заключается в том, что является правильным подходом к разбору необработанных данных HTTP в ASP.NET, а не как сам разбор выполняется.
Что-то вроде этого помещается в вашем onload событии.
if (Request.RequestType == "POST")
{
using (StreamReader sr = new StreamReader(Request.InputStream))
{
if (sr.ReadLine() == "SUCCESS")
{
/* Do your parsing here */
}
}
}
Имейте в виду, что они могут хотеть получить какой-то особый вид ответа (т. е. не всю вашу веб-страницу), поэтому вы можете сделать что-то подобное после того, как закончите разбор.
Response.Clear();
Response.ContentType = "text/plain";
Response.Write("Thanks!");
Response.End();
Update: это должно быть сделано в универсальном обработчике (.ashx) файл, чтобы избежать больших накладных расходов от модели страницы. Дополнительную информацию о файлах .ashx смотрите в этой статье
Используйте IHttpHandler и избегайте накладных расходов модели страницы (которые вам не нужны), но используйте Request.Form для получения значений, чтобы вам не пришлось самостоятельно разбирать пары значений имен. Просто представьте, что вы находитесь в PHP или классическом ASP (или ASP.NET MVC, если уж на то пошло). ;)
Я настоятельно рекомендую сохранять каждый запрос в какой-нибудь файл.
Таким образом, вы всегда можете вернуться к его фактическому содержанию позже. Вы можете поблагодарить меня позже, когда найдете этот враждебный эндиан, кодированный koi-8, [...], что бы там ни было, что поставило в тупик ваш парсер...
Если я правильно понял ваш вопрос, я думаю, что вы ищете свойство InputStream в объекте запроса. Имейте в виду, что это поток firehose, поэтому вы не можете сбросить его.