2014-11-28 2 views
0

У меня есть очень конкретный вопрос, и я постараюсь объяснить все, что могу. Я использую формы окон, с веб-браузером, многопоточным и скрипачом.FiddlerCore - многопоточный веб-браузер, получающий ту же самую сессию

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

В коде fiddlercore я использую событие FiddlerApplication_AfterSessionComplete для захвата всего трафика с веб-сайта (на каждом из веб-браузеров).

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

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

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

Я ценю любую помощь.

ответ

1

Я не знаю fiddlercore, но из документации по FiddlerApplication_AfterSessionComplete должна быть Fiddler.Session объект с oRequest свойство типа ClientChatter. ClientChatter имеет заголовков свойства,

Поэтому мое предложение заключается в добавлении пользовательского заголовка с уникальным идентификатором (числом нити .. справы ..) в запросе и проверить этот заголовок когда FiddlerApplication_AfterSessionComplete обжигают, чтобы соответствовать запросу/Отклик.

+0

Спасибо за ответ и извините за долгое время. Я тестировал с тех пор, и да, решение заключается в добавлении настраиваемого заголовка. Это (http://stackoverflow.com/questions/937573/changing-the-user-agent-of-the-webbrowser-control) сообщение показывает, как это сделать. благодаря! –

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