vb.net問題,我已經打了對POST'ing數據一堵牆,一個WebForm :( 下面是我改編自許多地方(這裏最近:http://p2p.wrox.com/asp-net-1-0-1-1-professional/34517-webrequest-webresponse-form-submit-problem-help.html)代碼發佈到Web表單
Dim url As String = "https://student.ashford.edu/student/"
Dim data As String = "username=myusername&password=mypassword"
Dim buffer As Byte() = Encoding.UTF8.GetBytes(data)
Dim result As String = ""
Dim req As HttpWebRequest = DirectCast(WebRequest.Create(url), HttpWebRequest)
req.Method = "POST"
req.ContentType = "application/x-www-form-urlencoded"
req.ContentLength = buffer.Length
req.CookieContainer = New CookieContainer()
' enable cookies
Dim reqst As Stream = req.GetRequestStream()
' add form data to request stream
reqst.Write(buffer, 0, buffer.Length)
reqst.Flush()
reqst.Close()
Console.WriteLine(vbLf & "Posting data to " & url)
Dim res As HttpWebResponse = DirectCast(req.GetResponse(), HttpWebResponse)
' send request,get response
Console.WriteLine(vbLf & "Response stream is: " & vbLf)
Dim resst As Stream = res.GetResponseStream()
' display HTTP response
Dim sr2 As New StreamReader(resst)
result = sr2.ReadToEnd()
Using writer As System.IO.StreamWriter = New StreamWriter("C:\Temp\checkcheck.html")
writer.Write(result)
End Using
當我檢查checkcheck.html文件時,它並沒有顯示我成功登錄我的大學時通常看到的頁面,而是再次顯示登錄頁面,提示輸入用戶名和密碼。對於用戶/通過輸出響應,是否意味着什麼都沒有發佈?或者是登錄按鈕沒有被命中?
只要源中的字段名稱,用戶名字段的名稱是「用戶名」,密碼字段的名稱是「密碼」。從我所知道的,登錄按鈕本身的名稱是「提交」。以下是網頁的來源,我錯過了什麼?
查看源代碼:https://student.ashford.edu/student/
https://student.ashford.edu/student/
我希望有發生的是,在我的VB.NET後臺,我點擊一個按鈕,我的用戶名和密碼自動輸入和我很自動地記錄下來。一旦完成登錄,我想檢索已登錄頁面的HTML,以便我可以解析與我學習相關的項目。這可能是不相關的,但是如果我導航到其他頁面,是否需要cookie來保持我的應用程序「登錄」?
編輯: 我試圖插入不同的URL,無濟於事。我也嘗試添加submit = login和login = submit(當然是交替)POST數據。我仍然從最後的結果變量中獲取原始登錄屏幕HTML,而不是我通常在手動登錄後以人類身份登錄的大學主頁。也許有一個後續步驟,我失蹤了?
這是我將數據發佈到哪裏?如在,我會將我的第一個URL變量設置爲該地址?我只是將這個地址插入到URL變量中,並且我得到了同樣的結果,將我轉回到登錄頁面。 – 2010-01-03 02:20:19