d1xiao1 2019-09-09 11:55 采纳率: 0%
浏览 366

ASP调用WEBSERVICE接口取不到返回内容

我用下面的代码,不管strXML的内容是什么,都返回通过浏览器直接访问接口地址所显示的内容
通过测试工具能链接成功,请问各位,我的程序什么地方有问题
<%
dim strHost,strURL,strAction,strXML,strRequest
strHost="172.22.31.29"
strURL="http://"&strHost&":80/csp/I-PAY//DHC.PAY.BS.PAYHisWebservice.cls?wsdl"'
strAction="http://tempuri.org/DHC.PAY.BS.PAYHisWebservice.GetPatInfo"

strRequest=""
'strRequest="Input="
strRequest=strRequest&"<Request><TradeCode>3300</TradeCode><PatientCard>0120781244</PatientCard><CardType>01</CardType><HospitalId>2</HospitalId>"
strRequest=strRequest&"<ExtUserID>cs001</ExtUserID><TerminalID>hj0001</TerminalID></Request>"

strXML=""
strXML=strXML&"<?xml version='1.0' encoding='utf-16'?>"
strXML=strXML&"<soap:Envelope xmlns:soap='http://schemas.xmlsoap.org/soap/envelope/' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xmlns:xsd='http://www.w3.org/2001/XMLSchema'>"
strXML=strXML&"<soap:Body>"
strXML=strXML&"<GetPatInfo xmlns='http://tempuri.org'>"
strXML=strXML&"<Input>"&strRequest&"</Input>"
strXML=strXML&"</GetPatInfo>"
strXML=strXML&"</soap:Body>"
strXML=strXML&"</soap:Envelope>"

strXML=strRequest


Set objHTTP = CreateObject("MSXML2.ServerXMLHTTP") 
objHTTP.open "POST", strURL, False 
objHTTP.setOption 2, 13056 
objHTTP.setRequestHeader "Content-Type", "text/xml; charset=utf-8" 
objHTTP.setRequestHeader "Content-Length",LEN(strURL) 
objHTTP.setRequestHeader "SOAPAction", strAction 

objHTTP.send (strXML) 


If objHTTP.Status=200 Then

    Dim PageResponseTime
    Set objXML    = CreateObject("MSXML2.DOMDocument")
    objXML.async=False
    objXML.Load(objHttp.responseXML)
    '这里是返回的是错误信息
    If objXML.parseError.errorCode <> 0 Then
        '错误
        Response.Write objXML.parseError.errorCode &vbcrlf
        Response.Write objXML.parseError.filepos &vbcrlf
        Response.Write "Line: "&objXML.parseError.Line&": "&objXML.parseError.linepos &vbcrlf
        Response.Write "Reason: "&objXML.parseError.reason&vbcrlf
        Response.Write "Error Data: "&objXML.parseError.srcText 
    Else
        '--Nback以下是测试信息
        Set objFlight=objXML.getElementsByTagName("input")
        Response.Write(objFlight.length&"<br>")
        Set objFlight=objXML.getElementsByTagName("Response")
        Response.Write(objFlight.length&"<br>")

        xmlStr = objXML.xml
        xmlStr = Replace(xmlStr,"&lt;","<")'--Nback
        xmlStr = Replace(xmlStr,"&gt;",">")'--Nback
        xmlStr = Replace(xmlStr,"<","&lt;")'--Nback
        xmlStr = Replace(xmlStr,">","&gt;")'--Nback

        Response.Write "<pre>"&xmlStr&"</pre>"'--Nback

    End If
Else
     Response.Write "调用webservice失败"
End If

%>
通过测试工具WebServiceStudio传送的XML
<?xml version="1.0" encoding="utf-16"?>

soap:Body

<Request><TradeCode>3300</TradeCode><PatientCard>0120781244</PatientCard><CardType>01</CardType><HospitalId>2</HospitalId><ExtUserID>cs001</ExtUserID><TerminalID>hj0001</TerminalID></Request>

/soap:Body
/soap:Envelope
通过测试工具WebServiceStudio传送的相关参数
图片说明

  • 写回答

1条回答 默认 最新

  • threenewbee 2019-09-09 22:47
    关注

    objHTTP.setRequestHeader "Content-Length",LEN(strURL)
    ->
    objHTTP.setRequestHeader "Content-Length",LENB(strURL)
    看看

    建议你用 soap toolkit,而不是手工写,自己写稍微不注意就可能有错误,又不好检查

    评论

报告相同问题?

悬赏问题

  • ¥15 关于#matlab#的问题:在模糊控制器中选出线路信息,在simulink中根据线路信息生成速度时间目标曲线(初速度为20m/s,15秒后减为0的速度时间图像)我想问线路信息是什么
  • ¥15 banner广告展示设置多少时间不怎么会消耗用户价值
  • ¥16 mybatis的代理对象无法通过@Autowired装填
  • ¥15 可见光定位matlab仿真
  • ¥15 arduino 四自由度机械臂
  • ¥15 wordpress 产品图片 GIF 没法显示
  • ¥15 求三国群英传pl国战时间的修改方法
  • ¥15 matlab代码代写,需写出详细代码,代价私
  • ¥15 ROS系统搭建请教(跨境电商用途)
  • ¥15 AIC3204的示例代码有吗,想用AIC3204测量血氧,找不到相关的代码。