首页 新闻 会员 周边 捐助

SOAP协议被拦截

0
悬赏园豆:10 [已关闭问题]

通过VC 2003写的一个DLL,在DLL中调用了WEBSERVICE,但结果调用失败。

使用FIDDLER和SNIFFER跟踪,都没拦截,分析,应该是系统里拦截了对SOAP协议的调用。

测试过程中,假如用DELPHI或C++BUILDER写的DLL调用WEBSERVICE是能成功的。

分析以为:VC是走SOAP协议调用WEBSERVICE的,而C++BUILDER或DELPHI是绕过了SOAP协议而直接走HTTP协议。

请问该如何解决?

无之无的主页 无之无 | 大侠五级 | 园豆:5095
提问于:2009-11-13 14:04
< >
分享
其他回答(3)
0

SOAP协议最后应该也是走HTTP协议,应该是你代码本身的原因

lisw | 园豆:313 (菜鸟二级) | 2009-11-13 14:08
0

SOAP是应用协议,是建立在传输协议Http,Tcp,msmq等之上的.

一般WebService都是Soap+http来实现的.soap定义的内容写在http的body里.

Fiddler抓不到请求,是有可能的,比如用souapui工具调用的请求,Fiddler就抓不到.

但是可以使用更底层的抓包工具,我推荐使用Microsoft Network Monitor,这个是可以抓到的.

Sniffer和Microsoft Network Monitor功能差不多,也应该能抓到,你把过滤的协议设置为tcp,http,应该就可以抓到.

Launcher | 园豆:45050 (高人七级) | 2009-11-13 15:36
0

跟C++BUILDER或DELPHI通讯你可考虑做一个标准的com+组件

persialee | 园豆:3217 (老鸟四级) | 2009-11-13 15:38
0

你失败的信息是什么?

还有没监听到SOAP响应,不代表系统拦截了,使用80端口访问Web服务请求。防火墙默认不会阻拦的。SOAP也是基于HTTP协议传输的。

你再检查一下使用VC写的调用代码,确保你的请求消息符合Web服务调用的Schema,

不然服务不会响应你的请求。自然也就监听不到任何回复消息

Frank Xu Lei | 园豆:1860 (小虾三级) | 2009-11-14 10:41
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册