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 我这模型写的不对吗?为什么lingo解出来的下面影子价格这一溜少一个变量
  • ¥50 树莓派安卓APK系统签名
  • ¥15 maple软件,用solve求反函数出现rootof,怎么办?
  • ¥65 汇编语言除法溢出问题
  • ¥15 Visual Studio问题
  • ¥20 求一个html代码,有偿
  • ¥100 关于使用MATLAB中copularnd函数的问题
  • ¥20 在虚拟机的pycharm上
  • ¥15 jupyterthemes 设置完毕后没有效果
  • ¥15 matlab图像高斯低通滤波