[.NET] SOAP requests afvangen en loggen

Pagina: 1
Acties:

Vraag


Acties:
  • 0 Henk 'm!

  • Lethalis
  • Registratie: April 2002
  • Niet online
Mijn vraag
Wij hebben op mijn werk de situatie dat we XML web services aanroepen van leveranciers via HTTPS. Uiteraard gebruiken we hier (op WSDL gebaseerde) automatisch gegenereerde proxy classes voor en is het vaak lastig om te zien met welke XML we deze aanvragen doen.

Vroeger gebruikte ik WireShark om dit af te vangen, maar met HTTPS wordt dat hem niet meer :)

Nu hadden we vandaag weer een situatie waarbij een aanvraag van ons niet werd goedgekeurd door de leverancier, en wij de request XML wilden inspecteren... uiteindelijk heb ik een simpele HTTP handler gemaakt die de input helemaal leest en heb ik onze client met debugger eraan naar de URL van mijn HTTP handler gewezen, zodat ik alsnog de XML kon inspecteren (en vervolgens kon copy-pasten naar Postman om hem los te testen / tweaken).

Anyways, dit is allemaal erg omslachtig en het voelt een beetje nutteloos om die HTTP handler te gaan uitbreiden etc.

Er is vast een handig trucje / tooltje dat ik kan gebruiken hiervoor :)

Relevante software en hardware die ik gebruik
.NET framework 4.5.2 en ouderwetse Web Service references (geen WCF). Gezien de grote hoeveelheden web services is het ook niet aan te raden de implementatie te wijzigen.

Wat ik al gevonden of geprobeerd heb
Zelf HTTP handler gemaakt en request afgevangen door de client naar mijn handler URL te wijzen, maar dit kan vast handiger.

We erven ook al over van Microsoft.Web.Services3.WebServicesClientProtocol, waardoor we beschikken over een RequestSoapContext en ResponseSoapContext. Helaas is de RequestSoapContext vaak niet gevuld in foutsituaties, waardoor we geen Envelope.InnerXml kunnen opvragen en er dus alsnog niks aan hebben.

Dit is typisch zo'n dingetje dat eens in de 3 maanden terugkomt ofzo, waardoor het elke keer prutsen is, omdat niemand het een keer goed uitzoekt _O- Of documenteert }:|

Alvast bedankt :)

Ask yourself if you are happy and then you cease to be.

Beste antwoord (via Lethalis op 18-12-2018 08:45)


  • TheBorg
  • Registratie: November 2002
  • Laatst online: 05-10 18:02

TheBorg

Resistance is futile.

Ik gebruik Telerik Fiddler. Eenvoudiger dan Wireshark en dan heb je Postman ook niet meer nodig. Wireshark is meer een generiek capture programma. Fiddler is echt gemaakt voor wat je wilt doen. Kan ook met een druk op de knop XML netjes weergeven en dat soort dingen.

[ Voor 47% gewijzigd door TheBorg op 18-12-2018 00:18 ]

Alle reacties


Acties:
  • 0 Henk 'm!

  • RobIII
  • Registratie: December 2001
  • Niet online

RobIII

Admin Devschuur®

^ Romeinse Ⅲ ja!

(overleden)
Lethalis schreef op maandag 17 december 2018 @ 23:19:
Vroeger gebruikte ik WireShark om dit af te vangen, maar met HTTPS wordt dat hem niet meer :)
Want :?

Anders kun je ook eens naar Fiddler kijken.

[ Voor 27% gewijzigd door RobIII op 18-12-2018 00:13 ]

There are only two hard problems in distributed systems: 2. Exactly-once delivery 1. Guaranteed order of messages 2. Exactly-once delivery.

Je eigen tweaker.me redirect

Over mij


Acties:
  • Beste antwoord
  • +1 Henk 'm!

  • TheBorg
  • Registratie: November 2002
  • Laatst online: 05-10 18:02

TheBorg

Resistance is futile.

Ik gebruik Telerik Fiddler. Eenvoudiger dan Wireshark en dan heb je Postman ook niet meer nodig. Wireshark is meer een generiek capture programma. Fiddler is echt gemaakt voor wat je wilt doen. Kan ook met een druk op de knop XML netjes weergeven en dat soort dingen.

[ Voor 47% gewijzigd door TheBorg op 18-12-2018 00:18 ]


Acties:
  • 0 Henk 'm!

  • Lethalis
  • Registratie: April 2002
  • Niet online
TheBorg schreef op dinsdag 18 december 2018 @ 00:13:
Ik gebruik Telerik Fiddler. Eenvoudiger dan Wireshark en dan heb je Postman ook niet meer nodig. Wireshark is meer een generiek capture programma. Fiddler is echt gemaakt voor wat je wilt doen. Kan ook met een druk op de knop XML netjes weergeven en dat soort dingen.
Dit werkt inderdaad goed :) Ik moest wel eerst "Decrypt HTTPS traffic" aanzetten en een certificaat trusten, maar vanaf dat moment kan ik de communicatie bekijken.
Ik wist niet dat dit kon :)

Maar goed, Fiddler werkt wel makkelijker.

[ Voor 22% gewijzigd door Lethalis op 18-12-2018 08:48 ]

Ask yourself if you are happy and then you cease to be.


Acties:
  • 0 Henk 'm!

  • Groax
  • Registratie: Oktober 2012
  • Laatst online: 02-10 11:33
Ik moet voor een Laravel project dit doen en ik ben het met Lethalis eens... niemand documenteert SOAP dingen en als het er is dan is dit zo danig verouderd dat het nog niet echt te gebruiken is.

Alleen moet ik met Laravel ook nog een inloggen doormiddel van SOAP. plz kill me! morgen zien jullie waarschijnlijk mijn topic wel verschijnen ;)