使用ASP調用WebService時要注意的問題(修正)

這是8月份的文章,其實發現原因根本不是這個,希望大家不要受到其毒害了,真正的原因在文章底部:

今天做了一下試驗,發現當WebService返回的XML數據中使用了”Name”關鍵字作爲健值時,ASP頁面將無法讀取整個XML文檔,而出現以下錯誤:

無法顯示 XML 頁。

使用 XSL 樣式表無法查看 XML 輸入。請更正錯誤然後單擊 刷新按鈕,或以後重試。


文本內容中發現無效字符。處理資源 'http://192.168.0.41/aspServer/server.asp' 時出錯。第 56 行,位置: 11


//服務器端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的存儲問題

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章