使用ASP调用WebService时要注意的问题(修正)

这是8月份的文章,其实发现原因根本不是这个,希望大家不要受到其毒害了,真正的原因在文章底部:

今天做了一下试验,发现当WebService返回的XML数据中使用了”Name”关键字作为健值时,ASP页面将无法读取整个XML文档,而出现以下错误:

无法显示 XML 页。

文本内容中发现无效字符。处理资源 'http://192.168.0.41/aspServer/server.asp' 时出错。第 56 行,位置: 11

    <Name>

使用 XSL 样式表无法查看 XML 输入。请更正错误然后单击 刷新按钮,或以后重试。


//服务器端ASP代码如下,WebService代码略,只要返回一个DataSet的值即可

<%
Set objHTTP = Server.CreateObject("MSXML2.XMLHTTP")
Set xmlDOC =Server.CreateObject("MSXML.DOMDocument")
strWebserviceURL = "http://192.168.0.41/WebService1/Service1.asmx/ds"
'设置参数及其值
'strRequest = "x=2&y=3"
strRequest = "tbname=123"
objHTTP.Open "POST", strWebserviceURL, False
'设置这个Content-Type很重要
objHTTP.SetRequestHeader "Content-Type", "application/x-www-form-urlencoded"
objHTTP.Send(strRequest)
bOK = xmlDOC.load(objHTTP.responseXML)
'看看状态值
if objHTTP.Status=200 then
xmlStr = xmlDOC.xml
xmlStr = Replace(xmlStr,"&lt;","<",1,-1,1)
xmlStr = Replace(xmlStr,"&gt;",">",1,-1,1)
  Response.Write xmlStr
else
  Response.Write objHTTP.Status&"<br>"
  Response.Write objHTTP.StatusText
end if
%>

'关键字Name不能用在数据库设计中!!!!!!!!!!!!
'十万个注意!!!

真正的原因是,XML文件的存储格式问题,如果XML以ANSI格式存储在硬盘上,就会报出这个错误,而如果XML以
UTF-8或者16位长的编码格式存储时,就不会出现这个错误了,所以根本问题在于XML的存储问题

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值