做了一个利用webserver接口访问远端服务器的程序,网络连接没有问题,但是输入函数的查询命令后始终报错,请高手帮忙解决,谢谢!代码如下:
    Dim soapClient As New SoapClient30
    Dim getData As String    soapClient.ClientProperty("ServerHTTPRequest") = True
    soapClient.MSSoapInit “http://210.100.49.138/trffweb/services/TmriOutAccess?wsdl”
    soapClient.ConnectorProperty("Timeout") = "9000"
   
    headstr = "<?xml version=" + Chr(34) & "1.0" & Chr(34) + " " + "encoding=" + Chr(34) & "GBK" & Chr(34) + "?>" + "<root>" + "<QueryCondition>" + "<hp>"+ “02”+"</hp>"+"<zl>"+ “1234”+"</zl>" "</QueryCondition>" + "</root>"    getData = soapClient.ObjectOut("01", UTF8Encode(headstr)) 当执行到最后一步时出现如下错误:
WSDLReader:XML Parser failed at linenumber 0,linepasition 0,
reason is:指定资源下载失败。
HRESULT=0x1:函数不正确。
-WSDLReader:loading of the WSDL file failed
HRESULT=0x80070057:参数错误。
-Client:One of the paeameters supplied is invalid.
HRESULT=0x80070057:参数错误ObjectOut是对方服务器指定的函数
是不是我的SOAP Toolkit 3.0使用的错误,还是语句错误,请高手帮忙指点。

解决方案 »

  1.   

    干嘛自己拼接xml,soap工具包可以自动创建soap xml
      

  2.   

    干嘛自己拼接xml,soap工具包可以自动创建soap xml请指点soap工具包自动创建soap xml,谢谢!
      

  3.   

    headstr = "<?xml version=" + Chr(34) & "1.0" & Chr(34) + " " + "encoding=" + Chr(34) & "GBK" & Chr(34) + "?>" + "<root>" + "<QueryCondition>" + "<hp>"+ “02”+"</hp>"+"<zl>"+ “1234”+"</zl>" + "</QueryCondition>" + "</root>"红字部位少个+号,建议你先把headstr打印出来看看headstr内容是否正确
      

  4.   

    另外,人家明显要求的是GBK编码的xml文档,你用UTF8Encode把xml转成UTF8格式的,不知道会不会有影响。
      

  5.   

    对方的接口规则必须要把中文用UTF8Encode把xml转成UTF8格式,这个没有影响。对方的webserver使用java写的,不知道SoapClient30还有没有其他的用法,请高手指教,谢谢!