关于一个用soap访问webservice的问题~~~~~~~~~
大侠帮帮忙,快急死了~~~~我用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值插入到几个字段,可这个表没有这几个字段,表也是一个独立表,高手帮帮忙~~~ OverLoad?????Serializer.startElement "intBeamPlantId", "http://tempuri.org/"
补充:VB , 网络编程