我为了实现动态网站的静态发布,需要每隔一段时间就将某些jsp文件转换为html文
件,由于inet控件不稳定,所以决定用wininet.dll做,以下是主要代码:Const INTERNET_OPEN_TYPE_PRECONFIG = 0
Const INTERNET_FLAG_EXISTING_CONNECT = &H20000000    hInternetSession = InternetOpen(App.EXEName, INTERNET_OPEN_TYPE_PRECONFIG, vbNullString, vbNullString, 0)
    If hInternetSession > 0 Then
        hUrl = InternetOpenUrl(hInternetSession, "http://www.aaa.com.cn/aaa.jsp", vbNullString, 0, INTERNET_FLAG_EXISTING_CONNECT, 0)
        If hUrl > 0 Then
            Buffer = Space(1024)
            FileNum = FreeFile
            Open "c:\aaa.html" For Binary Access Write As #FileNum
            Do
                ok = InternetReadFile(hUrl, Buffer, Len(Buffer), NumberOfBytesRead)
                If NumberOfBytesRead = 0 Or Not ok Then Exit Do
                '写文件
                Put #FileNum, , Left(Buffer, NumberOfBytesRead)
            Loop
            Close FileNum
        End If
    End Ifhtml文件是能保存下来,但发现前面和后面多了一些乱七八糟的字符,和我直接在浏览其中打开jsp看到的源文件不一样啊,我研究了半天也不知道怎么回事,有谁知道是为什么吗?谢谢啊

解决方案 »

  1.   

    下载的文件是包含文件头的,你为什么不用这个函数呢,'URL Download
    Private Declare Function URLDownloadToFile Lib "urlmon" Alias "URLDownloadToFileA" (ByVal pCaller As Long, ByVal szURL As String, ByVal szFileName As String, ByVal dwReserved As Long, ByVal lpfnCB As Long) As Long
    Public Function DownloadFile(URL As String, LocalFilename As String) As Boolean
        Dim lngRetVal As Long
        lngRetVal = URLDownloadToFile(0, URL, LocalFilename, 0, 0)
        If lngRetVal = 0 Then DownloadFile = True
    End Function
    Private Sub Form_Load()
        DownloadFile "http:*.jsp", "c:\allapi.htm"
    End Sub