+ -
当前位置:首页 → 问答吧 → 在vb中使用soap访问webservice的问题~~~~~~~~~

在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值插入到几个字段,可这个表没有这几个字段,表也是一个独立表,高手帮帮忙~~~

作者: ljw_gh1   发布时间: 2011-03-08