Как проверить, какой xml отправляется во время запроса веб-сервиса? - PullRequest
3 голосов
/ 03 апреля 2009

Есть ли способ получить необработанный XML, который генерируется запросом SOAP в .net. Я не знаю, как спросить это точно, но здесь идет

Я добавляю веб-ссылку и вызываю какой-то метод. Есть ли способ узнать, какой XML отправляется. Только для отладки, поэтому достаточно быстрого и грязного способа

P.S. Используется SSL, поэтому перехватывать здесь не поможет

Ответы [ 4 ]

5 голосов
/ 03 апреля 2009

Обычно я делаю такие вещи с Fiddler .

Вставьте это в файл конфигурации: -

<system.net>
    <defaultProxy enabled="true">
        <proxy proxyaddress="http://127.0.0.1:8888" bypassonlocal="False"/>
    </defaultProxy>
</system.net>

Запустите Fiddler, и вы сможете отслеживать весь http-трафик, поступающий из вашего приложения. Просто установите значение false перед закрытием фиддлера.

3 голосов
/ 03 апреля 2009

Вы можете создать атрибут SoapExtensionAttribute и применить его к своим методам веб-службы.

Создайте класс, производный от SoapExtensionAttribute.

Создайте еще один класс, производный от SoapExtension.

Тип вашего SoapExtensionAttribute должен соответствовать типу вашего SoapExtension.

Когда вы находитесь в SoapExtension, у вас есть доступ к моменту сериализации / десериализации данных.

Вот 4 конкретных этапа:

SoapMessageStage.BeforeSerialize
SoapMessageStage.AfterSerialize           *
SoapMessageStage.BeforeDeserialize        *
SoapMessageStage.AfterDeserialize

Те, у которых есть '*', - это этапы, на которых вы хотите получить доступ к потоку. Оттуда вы можете регистрировать xml, который входит и выходит из вашего веб-сервиса.

Это то, что мы делаем здесь, это прекрасно работает.

Вот ссылка, которая объясняет более подробно: http://progtutorials.tripod.com/soapext.htm

Надеюсь, что это помогло.

1 голос
/ 03 апреля 2009

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

Вы также можете использовать его для воспроизведения запросов на мыло . Он отлично подходит и для других сетей - не только SOAP, но и обычных HTTP и TCP, и даже последовательных коммуникаций.

0 голосов
/ 03 апреля 2009

Вы можете попробовать: http://www.pocketsoap.com/tcpTrace/.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...