I'm writing a program in VB.NET, and I'm having trouble with my httpwebrequest code. I've used live HTTP headers for firefox to get the correct post data, but for some reason it won't login.
The thing is, I've used identical code for another similar site (changing just the post data) and it works just fine.
Any thoughts? Here is my code...
Imports System.Windows.Forms
Imports System.Net
Imports System.IO
Imports System.Text
Imports System.Text.RegularExpressions
Imports System.ComponentModel
Imports System.Threading
Public Class Form1
Dim logincookie As CookieContainer
Dim html As String = "BGW still running"
Private Sub cmdStart_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmdStart.Click
Dim username As String = "username"
Dim password As String = "password"
Dim postData As String = "url=&username=" + username + "&password=" + password + "&login=Check+Mail%21"
Dim tempcookies As New CookieContainer
Dim encoding As New UTF8Encoding
Dim bytedata As Byte() = encoding.GetBytes(postData)
Dim postReq As HttpWebRequest = DirectCast(WebRequest.Create("http://www.website.com/inbox.aspx?login"), HttpWebRequest)
postReq.Method = "POST"
postReq.KeepAlive = True
postReq.CookieContainer = tempcookies
postReq.ContentType = "application/x-ww-form-urlencoded"
postReq.Referer = "http://www.website.com/inbox.aspx?login"
postReq.UserAgent = "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:11.0) Gecko/20100101 Firefox/11.0"
postReq.ContentLength = bytedata.Length
Dim postReqStream As Stream = postReq.GetRequestStream()
postReqStream.Write(bytedata, 0, bytedata.Length)
postReqStream.Close()
Dim postResponse As HttpWebResponse
postResponse = DirectCast(postReq.GetResponse(), HttpWebResponse)
tempcookies.Add(postResponse.Cookies)
logincookie = tempcookies
Dim matchCount As Integer = 0
Dim request As System.Net.HttpWebRequest = System.Net.HttpWebRequest.Create("http://www.website.com/editprofile.aspx")
request.CookieContainer = logincookie
Dim response As System.Net.HttpWebResponse = request.GetResponse
Dim reader As System.IO.StreamReader = New System.IO.StreamReader(response.GetResponseStream())
html = reader.ReadToEnd
End Sub
End Class
Any thoughts or suggestions are appreciated.
Login is different on the URL you show. Is a redirect to a URL different than the one in your code.