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