比如有个论坛, 只有登录了才可以阅读帖子的内容. 我先手工登录论坛, 再用WebClient的DownloadData下载帖子内容, 再转化为String. 但是用WebClient下载数据的话, 实际上论坛还是认为是没有登录的, 所以下载的页面内容是提示登录的页面, 没有下载到页面的内容! 不知道应该如何才能下载到页面的数据? 谢谢!

解决方案 »

  1.   

    Function ChangeFilename(ByVal Filext As String) As String
            Randomize()
            Dim ranNum As Integer = CInt(Int((900 - 100 + 1) * Rnd() + 100))
            Dim FileName As String = Format(Now, "yyyyMMddHHmmss") & CStr(ranNum) & Filext
            Return FileName
        End Function
        Function UpRemoteFileToLocal(ByVal UpType As String, ByVal RemoteUrl As String, ByVal LocalFile As String) As Boolean
            On Error Resume Next
            Dim TmpResult As Boolean = False
            Select Case UpType
                Case "xmlhttp"
                    'With MSXML2
                    Dim myXmlHttp As New MSXML2.XMLHTTP40
                    myXmlHttp.open("GET", RemoteUrl, False)
                    myXmlHttp.send("")
                    Dim FS As FileStream = New FileStream(LocalFile, FileMode.CreateNew)
                    Dim BW As BinaryWriter = New BinaryWriter(FS)
                    BW.Write(myXmlHttp.responseBody)
                    BW.Close()
                    FS.Close()
                    TmpResult = True
                Case "webclient"
                    'With System.Net NameSpace
                    Dim myWebClient As New WebClient
                    myWebClient.DownloadFile(RemoteUrl, LocalFile)
                    TmpResult = True
            End Select
            Return TmpResult
        End Function
      

  2.   

    老大啊, DownloadFile下载的文件也是提示登录的界面啊.
    我也知道, 用WebClient确实也没有任何一点可以让论坛认为我这个WebClient已经登录论坛了. 我想首先是应该让论坛知道, 这个WebClient已经登录论坛了吧. 没有头绪
      

  3.   

    需要登陆的网站要使用httpwebrequest,其中的关键是多次请求的httpwebrequest要使用同一个CookieContainer
      

  4.   

    代码太长了贴不上来,我直接给你个地址下吧。源码
    http://web46624.s25.webcontrol.cn/webpage.txt
    调用 WebPage(string _url, string _loginurl, string _post)第一参数,需要登入查看的页面URL,第二登入请求验证的URL ,第三登入传值过去的参数。