Получение необработанного HTTP Данные POST во время Исключения

Если вы используете более раннюю версию Python или у вас есть очень веская причина, чтобы использовать свой собственный счетчик слов (я бы хотел услышать это!), Вы можете попробовать следующий подход, используя dict.

Python 2.6.1 (r261:67515, Feb 11 2010, 00:51:29) 
[GCC 4.2.1 (Apple Inc. build 5646)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> word_list = ['Jellicle', 'Cats', 'are', 'black', 'and', 'white,', 'Jellicle', 'Cats', 'are', 'rather', 'small;', 'Jellicle', 'Cats', 'are', 'merry', 'and', 'bright,', 'And', 'pleasant', 'to', 'hear', 'when', 'they', 'caterwaul.', 'Jellicle', 'Cats', 'have', 'cheerful', 'faces,', 'Jellicle', 'Cats', 'have', 'bright', 'black', 'eyes;', 'They', 'like', 'to', 'practise', 'their', 'airs', 'and', 'graces', 'And', 'wait', 'for', 'the', 'Jellicle', 'Moon', 'to', 'rise.', '']
>>> word_counter = {}
>>> for word in word_list:
...     if word in word_counter:
...         word_counter[word] += 1
...     else:
...         word_counter[word] = 1
... 
>>> popular_words = sorted(word_counter, key = word_counter.get, reverse = True)
>>> 
>>> top_3 = popular_words[:3]
>>> 
>>> top_3
['Jellicle', 'Cats', 'and']

Главный совет : Интерактивный интерпретатор Python - ваш друг, когда вы хотите поиграть с таким алгоритмом. Просто введите его и наблюдайте за ходом, осматривая элементы по пути.

7
задан 25 May 2009 в 17:03
поделиться

3 ответа

К тому времени, как запрос поступит в вашу службу, он будет обработан и недоступен для вас.

Однако ... вы можете прикрепить инспектор сообщений . Инспекторы сообщений позволяют вам возиться с сообщением, прежде чем оно достигнет вашей реализации операции. Вы можете создать буферизованную копию сообщения и скопировать ее в OperationContext.Current.

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

3
ответ дан 8 December 2019 в 01:54
поделиться

Используйте скрипач. Бесплатно от MS. Отлично работает.

-2
ответ дан 8 December 2019 в 01:54
поделиться

Вы просматривали свойство System.Web.Request.InputStream? У него должно быть именно то, что вы хотите.

Как «перемотать» свойство InputStream.

    if (Request.InputStream.Position != 0)
    {
        Request.InputStream.Seek(0, System.IO.SeekOrigin.Begin);
    }

Другой вариант, на который вы должны обратить внимание, - это захват этой информации с помощью HTTPModule в событии BeginRequest. Данные должны быть там в событии BeginRequest, потому что я не верю, что WCF принимает запрос до тех пор, пока не будет PostAuthenticateEvent.

-1
ответ дан 8 December 2019 в 01:54
поделиться
Другие вопросы по тегам:

Похожие вопросы: