一个下载远程URL的HTML代码的问题

every12555 2008-04-16 11:36:11
一个下载远程URL的HTML代码的问题,现在遇到一个问题,在A服务器上运行这段程序,可以实现功能。但放到B服务器上运行时就无法执行。通过跟踪记录返回值的情况来看,在B服务器上运行时,只记录到了远程URL HTML的第一个中文就结束了。这个问题应该如何解决?

代码如下test.asp

<%
m_html = getHTTPPage("http://www.baihe.com")
Response.write m_html
Response.end

function getHTTPPage(url)
on error resume next
dim http
set http=Server.createobject("Msxml2.XMLHTTP")
Http.open "GET",url,false
Http.send()
if Http.readystate<>4 then exit function
getHTTPPage=bytes2BSTR(Http.responseBody)
set http=nothing
if err.number<>0 then err.Clear
end function

Function bytes2BSTR(vIn)
dim strReturn
dim i,ThisCharCode,NextCharCode
strReturn = ""
For i = 1 To LenB(vIn)
ThisCharCode = AscB(MidB(vIn,i,1))
If ThisCharCode < &H80 Then
strReturn = strReturn & Chr(ThisCharCode)
Else
NextCharCode = AscB(MidB(vIn,i+1,1))
strReturn = strReturn & Chr(CLng(ThisCharCode) * &H100 + CInt(NextCharCode))
i = i + 1
End If

Next
bytes2BSTR = strReturn
End Function

%>

...全文
72 点赞 收藏 8
写回复
8 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
hztltgg 2008-04-21
看看Chr(CLng(ThisCharCode) * &H100 + CInt(NextCharCode)) 这句分别是多少

ThisCharCode=?
CLng(ThisCharCode) =?
CLng(ThisCharCode) * &H100 =?
CLng(ThisCharCode) * &H100 + CInt(NextCharCode) =?
Chr(CLng(ThisCharCode) * &H100 + CInt(NextCharCode)) =?
回复
every12555 2008-04-18
strReturn = strReturn & Chr(CLng(ThisCharCode) * &H100 + CInt(NextCharCode))

在服务器上的程序还有一些函数,行数上有偏差
回复
hztltgg 2008-04-17
我这儿没有问题
回复
every12555 2008-04-17
'on error resume next

看看报错如下:

Microsoft VBScript 编译器错误 错误 '800a03f6'

缺少 'End'

/iisHelp/common/500-100.asp,行242

Microsoft VBScript 运行时错误 错误 '800a0005'

无效的过程调用或参数: 'Chr'

/qw/test2.asp,行90
回复
hztltgg 2008-04-17
行90 是哪行?
回复
every12555 2008-04-17
啊,我在几台服务器上试了,其他的几个都没问题。就是在要发布的服务器上不好用,找不到问题了。
回复
rankisky 2008-04-16
'on error resume next

看看报错。
回复
every12555 2008-04-16
自己顶一下
回复
相关推荐
发帖
ASP
创建于2007-09-28

2.8w+

社区成员

ASP即Active Server Pages,是Microsoft公司开发的服务器端脚本环境。
申请成为版主
帖子事件
创建了帖子
2008-04-16 11:36
社区公告
暂无公告