[原创]POST获得网上返回资源

类别:软件工程 点击:0 评论:0 推荐:


POST获得网上返回资源,是回论坛中一个贴子写的


   '==========================================
   'posttofile("http://entry.126.com/cgi/login", _
   ' "<base href=""http://m134.mail.126.com/"">", _
   ' "user=XXX&pass=XXX", "XXX.html")
   '
   'Power by: Landlordh
   '说明:
   '      转载请保留原有版权信息
   '      此函数没有考虑相关的文件夹权限问题
   '===========================================

    Private Sub PostBackToFile(ByVal url As String, ByVal baseHref As String, ByVal poststr As String, ByVal FileName As String)
        Try
            Dim code As String = "GB18030"  '"big5"
            Dim req As Net.HttpWebRequest = CType(Net.WebRequest.Create(url), Net.HttpWebRequest)
            Dim SomeByte() As Byte = System.Text.Encoding.ASCII.GetBytes(poststr)
            req.Method = "POST"
            req.ContentType = "application/x-www-form-urlencoded"
            req.ContentLength = SomeByte.Length
            req.GetRequestStream.Write(SomeByte, 0, SomeByte.Length)
            Dim res As Net.HttpWebResponse = CType(req.GetResponse, Net.HttpWebResponse)
            Dim ReadStream As StreamReader = New StreamReader(res.GetResponseStream, System.Text.Encoding.GetEncoding(code))
            Dim strLine As String
            Dim getstr As String
            Do
                strLine = ReadStream.ReadLine       '用原来的排版
                getstr &= strLine & vbCrLf
            Loop Until strLine Is Nothing
            ReadStream.Close()
            getstr = getstr.Insert(0, baseHref)             '如果用了相对路径,控制目标的base href,否则打不开网页
            Try
                If IO.File.Exists(FileName) Then IO.File.Delete(FileName)
                Dim sr As New IO.StreamWriter(IO.File.Create(FileName), System.Text.Encoding.GetEncoding(code))
                'Dim sr As IO.StreamWriter = IO.File.CreateText(FileName) '编码兼容(utf8)
                sr.Write(getstr)
                sr.Close()
            Catch e As Exception
                MsgBox(e.Message)
            End Try
        Catch
        End Try
    End Sub

本文地址:http://com.8s8s.com/it/it32932.htm