How to intercept the XML requests sent by the proxy? - 05-09-2006 , 01:33 PM
I am trying to intercept and analyze the XML request that is being sent by
the generated web reference to a 3rd party web service. The web service is
giving me an error when calling a method saying I didn't send correct data.
Whilst I am working with objects in my client code I cannot really
understand my mistake. That unless I can actually SEE what does the form of
the serialized XML request look like and compare it to the schema given in
the web service documentation I received.
I have tried overriding the GetResponse method in the web reference file but
I cannot read from the request stream ("This stream does not support seek
I also tried Soap Extensions but again I can't seem to get my hands on the
data being sent to the web service.
Many of the examples I found on the internet explain how to intercept and
modify a request but in reality the modification is really a complete
replacement of the request so it has nothing to do with actually seeing what
was originally inside that request.
I learnt that TCP sniffers could be used but I don't know the ports used by
the .NET framework to communicate with the remote host. I couldn't find a
good such sniffer anyway...
I am completely lost. Can anybody give a hand?
RE: How to intercept the XML requests sent by the proxy? - 05-10-2006 , 06:41 AM
Thank you for posting.
Regarding on the intercepting the SOAP message sent by webservice proxy
generated by .net framework, I think you can just some some certain trace
tools like tcpTrace, proxyTrace or traceUtility in soaptoolkit 3.0.
#SOAP Toolkit 3.0
And when you want to start tracing(for your case, we're the webservice
client-side), just start the trace utility and listening on a local
port(specify a unused one, such as 8888), and then, forward the request to
the remote destination server(and a specified port, this is usually 80 for
http ). Then, for our webservice proxy's code, we should change its
service url to the local port we specified earlier. e.g:
MyProxy mp = new MyProxy();
mp.Url = "http:localhost:8888/xxxxx/xxxx.xxx";
Then, the SOAP message will be passed through the local 8888 port(our trace
utlity ) first, then be forwarded to the destination server(port) after be
Hope this helps. If there is anything I missed, please feel free to post
Microsoft Online Community Support
When responding to posts, please "Reply to Group" via your newsreader so
that others may learn and benefit from your issue.
This posting is provided "AS IS" with no warranties, and confers no rights.
Get Secure! www.microsoft.com/security
(This posting is provided "AS IS", with no warranties, and confers no
|Thread Tools||Search this Thread|