请教一个.net webservice的问题,如何获取soap原始数据

21 views
Skip to first unread message

马一哥

unread,
Nov 11, 2009, 8:57:24 AM11/11/09
to TopLanguage
我采用.net 完成一个webservice 的客户端的编写。 同时要用c++ 模拟同样的操作, 因为系统的原因,c++没有包含任何xml
或者soap 这样的库, 所以只能模拟出soap 的原始数据, 进行提交, 然后自己分析xml response数据。

现在已知wsdl 文件, 和一个已经实现好的.net 客户端。
通过简单的添加引用 我们利用 SoapHttpClientProtocol 派生

object[] results = this.Invoke("aaa", new object[] {
bbb});
很容易就实现了结果。

我现在希望 能拿到this.Invoke 以前的soap 的原始数据

如果有http 的request 那就更好了。 请问这该怎么做? 因为Invoke没有源码 无法跟进去 所以不知道内部实现了。 请教了。

z.s. jiang

unread,
Nov 11, 2009, 9:38:54 PM11/11/09
to pon...@googlegroups.com
hook一下

woo

unread,
Nov 11, 2009, 8:53:01 PM11/11/09
to pon...@googlegroups.com
可以考虑参考gsoap,看他怎么生成xml数据的,c/c++的,简单快速
.net应该有对webservice的直接支持啊,也很方便的

从网络看的话,可以通过wireshark看soap协议的内容

马一哥

unread,
Nov 12, 2009, 9:00:06 AM11/12/09
to TopLanguage
如果可以简单的sniffer 的话, 我就已经做了。 传输是依靠https. 所以第三方窥探的方法失效。

我自己的实现很简单, 我希望掌握这个方法,因为我真正要hook 的那个实现, 挺复杂的,我基本搞不清楚具体的实现,只能简单的反向推导出
发送的soap 和 接受soap 换上我自己的参数,完成工作。

haozes

unread,
Nov 13, 2009, 8:23:58 PM11/13/09
to pon...@googlegroups.com
我想你的意思是用http的sniffer工具如(httpwatch,fiddler)抓http包,那么就用那些工具试试吧.

2009/11/11 马一哥 <ppms...@gmail.com>

haozes

unread,
Nov 13, 2009, 8:25:28 PM11/13/09
to pon...@googlegroups.com
c++没有包含任何xml
或者soap 这样的库, 所以只能模拟出soap 的原始数据, 进行提交, 然后自己分析xml response数据。
---------------
不会吧.webservice出来这么久了,没有解析soap的库么,还得自己整?

2009/11/11 马一哥 <ppms...@gmail.com>

hayate

unread,
Nov 13, 2009, 11:24:57 PM11/13/09
to pon...@googlegroups.com
可以考虑微软最新的webservice library,for C++的

2009/11/11 马一哥 <ppms...@gmail.com>:

SpitFire

unread,
Nov 15, 2009, 10:06:31 PM11/15/09
to pon...@googlegroups.com
gsoap挺好用的,我一直用它

2009/11/14 hayate <haya...@gmail.com>



--
SpitFire

马一哥

unread,
Nov 16, 2009, 10:04:48 PM11/16/09
to TopLanguage
我想用xmlspy 调试, 他说 wsdl 文件有问题。

但源码利用这个wsdl 是可以运行的。

用xmlspy 可以调试 我自己用vs 写的例子

On Nov 16, 11:06 am, SpitFire <spitfi...@gmail.com> wrote:
> gsoap挺好用的,我一直用它
>
> 2009/11/14 hayate <hayate...@gmail.com>
>
>
>
>
>
> > 可以考虑微软最新的webservice library,for C++的
>
> > 2009/11/11 马一哥 <ppmsn2...@gmail.com>:
> > > 我采用.net <http://xn--wnuw83b91u.net> 完成一个webservice 的客户端的编写。 同时要用c++


> > 模拟同样的操作, 因为系统的原因,c++没有包含任何xml
> > > 或者soap 这样的库, 所以只能模拟出soap 的原始数据, 进行提交, 然后自己分析xml response数据。
>

> > > 现在已知wsdl 文件, 和一个已经实现好的.net <http://xn--4gqvdq6twtf31cf0eiv6csze2uv.net>客户端。


> > > 通过简单的添加引用 我们利用 SoapHttpClientProtocol 派生
>
> > > object[] results = this.Invoke("aaa", new object[] {
> > > bbb});
> > > 很容易就实现了结果。
>
> > > 我现在希望 能拿到this.Invoke 以前的soap 的原始数据
>
> > > 如果有http 的request 那就更好了。 请问这该怎么做? 因为Invoke没有源码 无法跟进去 所以不知道内部实现了。 请教了。
>
> --

> SpitFire- Hide quoted text -
>
> - Show quoted text -

Reply all
Reply to author
Forward
0 new messages