客户端程序的WEB SERVICE请求是由SOAP TOOLKIT 3.0来实现的,现由于网络环境中使用的是AUTOPROXY的代理策略.SOAP的代理选项内好象是没有这一项的.
如果要通过这种网络环境的话,是不是就不能通过SOAP TOOLKIT3.0来做了,SOAP 3.0INVOKE以后可以截获HTTP请求再重定向吗/?或者HOOK住函数再重发?

解决方案 »

  1.   

    我不太了解SOAP TOOLKIT 3.0,但我知道用winpcap包或RAW类型的socket可以完成这个功能。我想了解一下这个项目,我有一些自己写的winpcap代码,也许可以帮你。
      

  2.   

    需要集成javascript引擎,执行代理配置脚本
      

  3.   

    要么根据web service的WSDL,直接add web reference,自动生成web service的模板,然后就可以直接访问web service的方法了
      

  4.   

    首先谢谢大家的回复.to CharlesPrince :
    .我现在暂时是想了解一下SOAP调用的方式,不过SOCKET的访问也是要做的,我这个项目中WEB SERVICE和SOCKET服务都有的,等有时间再详细讨教一下.你可以加我MSN.    [email protected] jiangsheng:
    感谢回复,自动代理的基本原理确实是通过脚本去确定最终的所使用的代理及端口,不过通过PAC文件去解析,从而得到结果,确实是有点难度的.经过查阅相关资料发现WINDOWS的WINHTTP相关的API里提供了输入URL返回相应代理服务器信息的函数,我打算通过这个接口得到代理服务器的相关信息再回设给SOAP组件进行调用,由于手上还有其它任务,这个暂时放一下,等做过测试后再回来告诉大家是否可行.有问题再向您请教.to oyljerry:
    我不知道你这里说的自动生成WEB SERVICE模板是做什么用的.我用的是VC6.0,我记得在VS2003下是可以直接添加WEB REFERENCE的,从这里面做的话不用考虑客户端运行的网络环境吗?默认的话相关代理,域用户等都不需要设置吗?如果这样的话,那我就考虑用VS2003直接生成一个DLL了,
      

  5.   

    经测试,通过WINHTTP的相关接口取得代理服务器的相关信息已经可以过了.
    现在又碰到另一问题,当代理服务器需帐号和密码验证时,SOAP3.0无法通过验证请求.
    代理服务器是使用的CCPROXY,经过对截包发现,SOAP首先会发送一个不带帐号和密码的请求,代理服务器未返回任何信息,就象未收到请求一样.
    当用tcpTrace.exe做了端口映射以后,代理服务器就会返回407错误,紧接着客户端就会再发一个带验证信息的请求,代理服务器变返回连接成功.
    这一点非常郁闷,IE也会发一个不带帐号和密码的请求,再接着发一个带验证信息的请求的.为什么SOAP就通不了呢.难道代理服务器未保持KEEP ALIVE吗?不知道大家是否还有其它的代理服务器软件.推荐一下.我换个代理程序试试看.
      

  6.   

    刚刚接触网络编程,楼主的问题我帮不上忙。另外看到楼主用过CCPROXY代理服务器,我也刚装了一个,可是点任何一项都需要输入管理员帐户的密码,我输入了还是不对。第一次使用,还请楼主指点一下。
      

  7.   

    to danxuezx:
    你说的情况我没有遇到过。我本身就是以ADMIN的帐号登录的。这估计是帐号的权限问题。CCPROXY也许某些功能需要ADMIN的权限经调试,换了另一个代理程序后可顺利通过代理,上面的分析也许是正确的,待用底层接口直接发送带验证信息的请求再确认一下。回来再告诉大家。