【问题标题】:How to use request and respond with xml and VB.net?如何使用 xml 和 VB.net 请求和响应?
【发布时间】:2012-12-01 17:57:19
【问题描述】:

我被要求向服务器发送请求以在线注册积分收集系统的交易。我对这个请求-响应过程了解不多。

他们告诉我请求应该是这样的:

request( 
p1 - loginInfo:UN|PASS|MP1
p2 - XMLTransactionInfo (below)
p3 - returnPointBalance:1
)

<transaction>
  <partnernum>000001</partnernum>
  <trxndate>2012-10->12T07:18:27</trxndate>
  <cardnum>1234567891234567</cardnum>
  <trxnamount>5.4</trxnamount>
  <trxnpoints>729</trxnpoints>
  <posnum>000-001</posnum>
  <contactidnum></contactidnum>
  <contactphone>357</contactphone>
  <trxnseqnum>12345612345612</trxnseqnum>
</transaction>

响应应该是这样的:

response(    
<?xml version="1.0" encoding="UTF-8"?> 
<transactionresponse xmlns="C:\path\Sth.ear\Sth.war/xmlschema/TransactionResponse.rng">
  <sequencenum>123123121312</sequencenum> 
  <errorcode>0</errorcode> 
  <errormessage></errormessage> 
  <trxnnum>6399575</trxnnum> 
  <balancebefore>1942</balancebefore> 
  <balanceafter>1213</balanceafter> 
  <mpcontrib>729</mpcontrib> 
  <partnercontrib>0</partnercontrib> 
</transactionresponse>
)

他们还告诉我:“您可以使用以下 URL 获取 WSDL:url1...”和“WS 端点是:url2...”

到目前为止,我已经设法做到以下几点:

Dim request As WebRequest = Nothing

  'Create a request for the URL.
  request =WebRequest.Create("URL1")

  'set the credentials.
  Dim credentials As NetworkCredential
  loginUser = "username"
  loginPass = "pass"
  credentials = New NetworkCredential(loginUser, loginPass, "MP1")
  request.Credentials = credentials

  'create the transaction xml
  request.ContentType = "text/xml"
  Dim transaction As XmlElement
  transaction = xml2.CreateElement("transaction")
  xml2.AppendChild(transaction)

  Dim partnernum As XmlElement
  partnernum = xml2.CreateElement("partnernum")
  partnernum.InnerText = "00001"
  transaction.AppendChild(partnernum)

  'and so on until i create the exact same xml as above...

然后我将 XML 文件打印到控制台进行视觉检查,然后请求响应

  'print to console
  xml2.Save(Console.Out)
  Dim response As WebResponse = request.GetResponse()
  Console.WriteLine(response.ToString())
  'write the response to a textbox
  responseText.Text = response.Headers.ToString()

文本框中响应的结果是

Content-Language: el-GR
Transfer-Encoding: chunked
Content-Type: text/xml
Date: Thu, 13 Dec 2012 18:52:33
GMT Server: WebSphere Application Server/6.0

首先我应该使用他们给我的 2 个网址中的哪一个?

其次,我如何创建他们告诉我的请求以获得我想得到的响应?

有没有分步指南?

我正在使用 VB.net,WinForms。 感谢您的宝贵时间。

【问题讨论】:

  • 如果您有 WSDL 的 URL,请使用该 URL 在 Visual Studio 中添加“Web 引用”,它将生成访问 Web 服务所需的代码。
  • 您发布的 XML 无效。请发布真正的 XML。然后,在编辑器中选择它并按 CTRL-K(带有大括号的图标)。
  • KBoek 在此线程上的回答:stackoverflow.com/questions/3757731/… 可能会引导您朝着正确的方向前进 - 无法真正判断它是否适用(可能会回答您的第一个和第二个问题)。此外,我从更多挖掘中发现了这一点:robz.homedns.org:8080/blog/archive/2005/02/25/387.aspx
  • 请在发送请求之前添加您的请求的打印输出。

标签: xml vb.net winforms wsdl request


【解决方案1】:

在 Visual Studio 中添加对 WSDL url 的引用。

【讨论】:

    猜你喜欢
    • 2017-11-08
    • 2023-03-15
    • 2016-02-11
    • 2017-09-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多