用ASP+XML采集PHP内容出错!

来源:百度知道 编辑:UC知道 时间:2024/09/20 07:04:01
<%@ LANGUAGE=VBScript codepage ="936" %>
<!--#include file="conn.asp"-->
<%
Function GetHTTPPage(url,nn)
dim XmlHttp
set XmlHttp=Server.createobject("Microsoft.XMLHTTP")
XmlHttp.open "POST",url,false
XmlHttp.setRequestHeader "CONTENT-TYPE","application/x-www-form-urlencoded"
XmlHttp.send(nn)
'getHTTPPage=Http.responseText
if XmlHttp.readystate<>4 then exit function
GetHTTPPage=Bytes2bStr(XmlHttp.responseBody)
set XmlHttp=nothing
if err.number<>0 then err.Clear
End Function
Function Bytes2bStr(vin)
Dim BytesStream,StringReturn
Set BytesStream = Server.CreateObject("ADODB.Stream")
BytesStream.Type = 2
BytesStream.Open
BytesStream.WriteText vin
BytesStream.Position = 0
BytesStream.Charset = "GB2312"
BytesStream.Position = 2
StringReturn =Bytes

在 SCRIPT 引擎 5.0开始, ASP 中的 VBSCRIPT 就可以用 Escape 了, 楼主用 Escape 是没问题。

问题出在, Escape 的编码方式 并不是 URLEncode, 所以你提交后,对方的PHP不会解析, 你的代码改为
<%=GetHTTPPage("http://www.3320.net/blib/f/search.php","skey=" & Server.UrlEncode("铁血大秦") & "&act=1")%>

escape是JAVASCRIPT函数,在ASP页面的〈% %〉中引用是错误的,ASP中没有这个函数,具体做法是用JavaScript脚本写个页面跳转之类的东西可以解决escape函数的问题。