在vb中使用soap访问webservice的问题~~~~~~~~~
时间:2011-03-08
来源:互联网
大侠帮帮忙,快急死了~~~~
我用soapui测试的对方接口没有问题
测试代码为:
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:tem="http://tempuri.org/">
<soapenv:Header/>
<soapenv:Body>
<tem:Add_StretchDrawdata>
<tem:intBeamPlantId>122</tem:intBeamPlantId>
<!--Optional:-->
<tem:strTaskName>eee</tem:strTaskName>
<!--Optional:-->
<tem:strDeviceNum>eee</tem:strDeviceNum>
<!--Optional:-->
<tem:strBeamName>eee</tem:strBeamName>
<!--Optional:-->
<tem:strSteelBunch>eee</tem:strSteelBunch>
<!--Optional:-->
<tem:strStretchDrawStage>eee</tem:strStretchDrawStage>
<!--Optional:-->
<tem:strJackNum1>eee</tem:strJackNum1>
<!--Optional:-->
<tem:strJackNum2>eee</tem:strJackNum2>
<tem:dblDesignPull>125</tem:dblDesignPull>
<tem:dblDesignElongate>123</tem:dblDesignElongate>
<tem:dblCurrentPull1>124</tem:dblCurrentPull1>
<tem:dblCurrentElongate1>124</tem:dblCurrentElongate1>
<tem:dblCurrentPull2>124</tem:dblCurrentPull2>
<tem:dblCurrentElongate2>124</tem:dblCurrentElongate2>
<!--Optional:-->
<tem:strStretchDrawTime>2001/0101</tem:strStretchDrawTime>
</tem:Add_StretchDrawdata>
</soapenv:Body>
</soapenv:Envelope>
然后自己在VB中通过程序访问,就出现问题,代码如下:
Private Sub Command1_Click()
Dim Serializer As SoapSerializer30
Dim reader As SoapReader30
Dim Connector As SoapConnector30
'namespace
Const SoapAction = "http://tempuri.org/Add_StretchDrawdata"
'wsdl地址
Const END_POINT_URL = "XX"
'新建一个connector对象
Set Connector = New HttpConnector30
Connector.Property("EndPointURL") = END_POINT_URL
Connector.Connect
Connector.Property("SoapAction") = SoapAction
'在weblogic中我们使用的是basic认证,在这里添加用户名和密码
Connector.BeginMessage
Set Serializer = New SoapSerializer30
Serializer.Init Connector.InputStream
Serializer.startEnvelope
Serializer.startHeader
Serializer.endHeader
Serializer.startBody
'在这里添加传入的参数,有两个参数NAME和AGE,前面的是方法名,后面的为namespace,在wsdl中标红色的部分。
Serializer.startElement "Add_StretchDrawdata"
Serializer.startElement "intBeamPlantId", "http://tempuri.org/"
Serializer.writeString 1234
Serializer.endElement
Serializer.startElement "strTaskName"
Serializer.writeString "1-3"
Serializer.endElement
Serializer.startElement "strDeviceNum"
Serializer.writeString "www"
Serializer.endElement
Serializer.startElement "strBeamName"
Serializer.writeString "ddd"
Serializer.endElement
Serializer.startElement "strSteelBunch"
Serializer.writeString "strSteelBunch"
Serializer.endElement
Serializer.startElement "strStretchDrawStage"
Serializer.writeString "strStretchDrawStage"
Serializer.endElement
Serializer.startElement "strJackNum1"
Serializer.writeString "strJackNum1"
Serializer.endElement
Serializer.startElement "strJackNum2"
Serializer.writeString "strJackNum2"
Serializer.endElement
Serializer.startElement "dblDesignPull"
Serializer.writeString 1760
Serializer.endElement
Serializer.startElement "dblDesignElongate"
Serializer.writeString 80
Serializer.endElement
Serializer.startElement "dblCurrentPull1"
Serializer.writeString 1760
Serializer.endElement
Serializer.startElement "dblCurrentElongate1"
Serializer.writeString 81
Serializer.endElement
Serializer.startElement "dblCurrentPull2"
Serializer.writeString 1760
Serializer.endElement
Serializer.startElement "dblCurrentElongate2"
Serializer.writeString 79
Serializer.endElement
Serializer.startElement "strStretchDrawTime"
Serializer.writeString "2000/01/01"
Serializer.endElement
Serializer.endElement
Serializer.endBody
Serializer.endEnvelope
Serializer.Finished
'Label1 = CStr(Connector.InputStream.)
Connector.EndMessage
'reader读入返回的xml对象
Set reader = New SoapReader30
reader.Load Connector.OutputStream
If Not reader.Fault Is Nothing Then
MsgBox reader.faultstring.Text, vbExclamation
Else
MsgBox reader.Body.xml
End If
End Sub
vb不报错,但是对方的返回值为-1,错误,错误提示是什么无法将NULL值插入到几个字段,可这个表没有这几个字段,表也是一个独立表,高手帮帮忙~~~
我用soapui测试的对方接口没有问题
测试代码为:
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:tem="http://tempuri.org/">
<soapenv:Header/>
<soapenv:Body>
<tem:Add_StretchDrawdata>
<tem:intBeamPlantId>122</tem:intBeamPlantId>
<!--Optional:-->
<tem:strTaskName>eee</tem:strTaskName>
<!--Optional:-->
<tem:strDeviceNum>eee</tem:strDeviceNum>
<!--Optional:-->
<tem:strBeamName>eee</tem:strBeamName>
<!--Optional:-->
<tem:strSteelBunch>eee</tem:strSteelBunch>
<!--Optional:-->
<tem:strStretchDrawStage>eee</tem:strStretchDrawStage>
<!--Optional:-->
<tem:strJackNum1>eee</tem:strJackNum1>
<!--Optional:-->
<tem:strJackNum2>eee</tem:strJackNum2>
<tem:dblDesignPull>125</tem:dblDesignPull>
<tem:dblDesignElongate>123</tem:dblDesignElongate>
<tem:dblCurrentPull1>124</tem:dblCurrentPull1>
<tem:dblCurrentElongate1>124</tem:dblCurrentElongate1>
<tem:dblCurrentPull2>124</tem:dblCurrentPull2>
<tem:dblCurrentElongate2>124</tem:dblCurrentElongate2>
<!--Optional:-->
<tem:strStretchDrawTime>2001/0101</tem:strStretchDrawTime>
</tem:Add_StretchDrawdata>
</soapenv:Body>
</soapenv:Envelope>
然后自己在VB中通过程序访问,就出现问题,代码如下:
Private Sub Command1_Click()
Dim Serializer As SoapSerializer30
Dim reader As SoapReader30
Dim Connector As SoapConnector30
'namespace
Const SoapAction = "http://tempuri.org/Add_StretchDrawdata"
'wsdl地址
Const END_POINT_URL = "XX"
'新建一个connector对象
Set Connector = New HttpConnector30
Connector.Property("EndPointURL") = END_POINT_URL
Connector.Connect
Connector.Property("SoapAction") = SoapAction
'在weblogic中我们使用的是basic认证,在这里添加用户名和密码
Connector.BeginMessage
Set Serializer = New SoapSerializer30
Serializer.Init Connector.InputStream
Serializer.startEnvelope
Serializer.startHeader
Serializer.endHeader
Serializer.startBody
'在这里添加传入的参数,有两个参数NAME和AGE,前面的是方法名,后面的为namespace,在wsdl中标红色的部分。
Serializer.startElement "Add_StretchDrawdata"
Serializer.startElement "intBeamPlantId", "http://tempuri.org/"
Serializer.writeString 1234
Serializer.endElement
Serializer.startElement "strTaskName"
Serializer.writeString "1-3"
Serializer.endElement
Serializer.startElement "strDeviceNum"
Serializer.writeString "www"
Serializer.endElement
Serializer.startElement "strBeamName"
Serializer.writeString "ddd"
Serializer.endElement
Serializer.startElement "strSteelBunch"
Serializer.writeString "strSteelBunch"
Serializer.endElement
Serializer.startElement "strStretchDrawStage"
Serializer.writeString "strStretchDrawStage"
Serializer.endElement
Serializer.startElement "strJackNum1"
Serializer.writeString "strJackNum1"
Serializer.endElement
Serializer.startElement "strJackNum2"
Serializer.writeString "strJackNum2"
Serializer.endElement
Serializer.startElement "dblDesignPull"
Serializer.writeString 1760
Serializer.endElement
Serializer.startElement "dblDesignElongate"
Serializer.writeString 80
Serializer.endElement
Serializer.startElement "dblCurrentPull1"
Serializer.writeString 1760
Serializer.endElement
Serializer.startElement "dblCurrentElongate1"
Serializer.writeString 81
Serializer.endElement
Serializer.startElement "dblCurrentPull2"
Serializer.writeString 1760
Serializer.endElement
Serializer.startElement "dblCurrentElongate2"
Serializer.writeString 79
Serializer.endElement
Serializer.startElement "strStretchDrawTime"
Serializer.writeString "2000/01/01"
Serializer.endElement
Serializer.endElement
Serializer.endBody
Serializer.endEnvelope
Serializer.Finished
'Label1 = CStr(Connector.InputStream.)
Connector.EndMessage
'reader读入返回的xml对象
Set reader = New SoapReader30
reader.Load Connector.OutputStream
If Not reader.Fault Is Nothing Then
MsgBox reader.faultstring.Text, vbExclamation
Else
MsgBox reader.Body.xml
End If
End Sub
vb不报错,但是对方的返回值为-1,错误,错误提示是什么无法将NULL值插入到几个字段,可这个表没有这几个字段,表也是一个独立表,高手帮帮忙~~~
作者: ljw_gh1 发布时间: 2011-03-08
相关阅读 更多
热门阅读
-
office 2019专业增强版最新2021版激活秘钥/序列号/激活码推荐 附激活工具
阅读:74
-
如何安装mysql8.0
阅读:31
-
Word快速设置标题样式步骤详解
阅读:28
-
20+道必知必会的Vue面试题(附答案解析)
阅读:37
-
HTML如何制作表单
阅读:22
-
百词斩可以改天数吗?当然可以,4个步骤轻松修改天数!
阅读:31
-
ET文件格式和XLS格式文件之间如何转化?
阅读:24
-
react和vue的区别及优缺点是什么
阅读:121
-
支付宝人脸识别如何关闭?
阅读:21
-
腾讯微云怎么修改照片或视频备份路径?
阅读:28