作者fire2 ( q )
看板Visual_Basic
标题[问题] 抓网页资料VB.NET POST方法
时间Wed Jun 20 15:57:32 2007
借上面标题用一下
最近我也卡点了
某些网站登入时,必须存取cookies
他会出现以下讯息
To login you must have cookies enabled.
例:
http://speed.travian.com/
在HttpWebRequest中我有保留 Session
但cookies这部份就无法解决了
想请板上各位帮忙一下
如能帮忙解答,也将赠2500做为感谢
目前程式如下
-------------------------------------------------------------
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
Dim myAddress As String = "http://speed.travian.com/login.php"
req = HttpWebRequest.Create(myAddress)
req.CookieContainer = cc
result = req.GetResponse()
ReceiveStream = result.GetResponseStream()
encode = System.Text.Encoding.GetEncoding("UTF-8")
'上面这行是看 你网页是用什麽编码 就打那个编码就好ㄌ
sr = New StreamReader(ReceiveStream, encode)
srr = sr.ReadToEnd()
TextBox1.Text = srr
WebBrowser1.DocumentText = srr
End Sub
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
'Dim httpResp As System.Net.HttpWebResponse
Dim httpUrl2 As New System.Uri("http://speed.travian.com/login.php")
req2 = CType(WebRequest.Create(httpUrl2), HttpWebRequest)
req2.CookieContainer = req.CookieContainer
req2.Method = "POST"
req2.ContentType = "application/x-www-form-urlencoded"
Dim bytesData() As Byte = Encoding.ASCII.GetBytes(TextBox1.Text)
req2.ContentLength = bytesData.Length
Dim postStream As Stream = req2.GetRequestStream()
postStream.Write(bytesData, 0, bytesData.Length)
postStream.Close()
Dim res As HttpWebResponse = CType(req2.GetResponse(), HttpWebResponse)
Dim reader As StreamReader = New StreamReader(res.GetResponseStream, System.Text.Encoding.GetEncoding("BIG5"))
Dim respHTML As String = reader.ReadToEnd()
res.Close()
TextBox1.Text = respHTML
WebBrowser1.DocumentText = respHTML
End Sub
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 220.143.92.38