HttpWebRequest (Login failed)

  • Thread starter Thread starter LetMeCode
  • Start date Start date
L

LetMeCode

Guest
Hi, Please I need help.

Im trying to connect using the below but it doesnt connect to the web-site in VS but its land me to the login page only, and there I have to enter the login details again.

By the way, I use Fiddler, I extracted that code from Fiddler, in Fiddler, the request succeed... but when I try it to VS it doesnt connect.



Imports System.Net
Imports System.Text
Imports System.IO
Imports System.Diagnostics
Imports System.IO.Compression

Public Class Form1

Calls request functions sequentially.
Private Sub MakeRequests()
Dim response As HttpWebResponse
Dim responseText As String

If Request_make(response) Then
Success, possibly use response.
responseText = ReadResponse(response)

WebBrowser1.DocumentText = responseText

response.Close()
Else
Failure, cannot use response.
End If
End Sub

Returns the text contained in the response. For example, the page HTML. Only handles the most common HTTP encodings.
Private Shared Function ReadResponse(response As HttpWebResponse) As String
Using responseStream = response.GetResponseStream()
Dim streamToRead As Stream = responseStream
If response.ContentEncoding.ToLower().Contains("gzip") Then
streamToRead = New GZipStream(streamToRead, CompressionMode.Decompress)
ElseIf response.ContentEncoding.ToLower().Contains("deflate") Then
streamToRead = New DeflateStream(streamToRead, CompressionMode.Decompress)
End If

Using streamReader = New StreamReader(streamToRead, Encoding.UTF8)
Return streamReader.ReadToEnd()
End Using
End Using
End Function

<summary>
Tries to request the URL: https://www.mywebsite.ca/login
</summary>
<param name="response">After the function has finished, will possibly contain the response to the request.</param>
<returns>True if the request was successful; false otherwise.</returns>
Private Function Request_make(ByRef response As HttpWebResponse) As Boolean
response = Nothing

Try
Create request to URL.
Dim request As HttpWebRequest = DirectCast(WebRequest.Create("https://www.mywebsite.ca/my/ads.html"), HttpWebRequest)

Set request headers.
request.KeepAlive = True
request.Headers.Set(HttpRequestHeader.CacheControl, "max-age=0")
request.Headers.Add("Origin", "https://www.mywebsite.ca")
request.Headers.Add("Upgrade-Insecure-Requests", "1")
request.UserAgent = "Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/55.0.2883.87 Safari/537.36"
request.ContentType = "application/x-www-form-urlencoded"
request.Accept = "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8"
request.Referer = "redirect=https%3A%2F%2Fwww.mywebsite.ca%2Fmy%2Fads.html&email=ariesio994%40gmail.com&password=dfge871&rememberMe=on"
request.Headers.Set(HttpRequestHeader.AcceptEncoding, "gzip, deflate, br")
request.Headers.Set(HttpRequestHeader.AcceptLanguage, "en-US,en;q=0.8")
request.Headers.Set(HttpRequestHeader.Cookie, "__gads=ID=b4b222877d192129:T=1481884237:S=ALNI_MbSogYVWSsp9TGS9GUmN3Fy1R-cuA; anonUsrId=ciww90h2r3fl63paunzorjkta; __utma=29192163.977768111.1481884340.1482147707.1482162148.7; __utmc=29192163; __utmz=29192163.1482147707.6.4.utmcsr=google|utmccn=(organic)|utmcmd=organic|utmctr=(not%20provided); searchLocId=3100001; searchLocName=""Western Cape""; geoId=-33.2277918ng21.8568586; __utmt_siteTracker=1; _gat=1; prevRedirect=/; machguid=a7c56226-dab8-4234-8fbe-273eb2835a17-159072ef322; __utma=29192163.977768111.1481884340.1482147707.1482162148.7; __utmb=29192163.17.10.1482163373734; __utmc=29192163; __utmz=29192163.1482147707.6.4.utmcsr=google|utmccn=(organic)|utmcmd=organic|utmctr=(not%20provided); _ga=GA1.3.977768111.1481884340; _mkto_trk=id:038-AZF-323&token:_mch-mywebsite.ca-1482163886680-68119; _em_t=true; _em_vt=c9befb9497d3270b52c44af2864b5853ad9da62b14-3709727658580ebe; _em_v=1b8bcdeede5ab9005b2ca194de4d5857ff85114b64-1046673958580ebe; testCookie=true; _gali=login-button")

Set request method
request.Method = "POST"

Disable Expect: 100-continue behavior. More info: http://haacked.com/archive/2004/05/15/http-web-request-expect-100-continue.aspx
request.ServicePoint.Expect100Continue = False

Set request body.
Dim body As String = "redirect=https%3A%2F%2Fwww.mywebsite.ca%2Fmy%2Fads.html&email=hjghgdfs878%40gmail.com&password=poryty14&rememberMe=on"
Dim postBytes As Byte() = System.Text.Encoding.UTF8.GetBytes(body)
request.ContentLength = postBytes.Length
Dim stream As Stream = request.GetRequestStream()
stream.Write(postBytes, 0, postBytes.Length)
stream.Close()

Get response to request.
response = DirectCast(request.GetResponse(), HttpWebResponse)
Catch e As WebException
ProtocolError indicates a valid HTTP response, but with a non-200 status code (e.g. 304 Not Modified, 404 Not Found)
If e.Status = WebExceptionStatus.ProtocolError Then
response = DirectCast(e.Response, HttpWebResponse)
Else
Return False
End If
Catch e As Exception
If response IsNot Nothing Then
response.Close()
End If
Return False
End Try

Return True
End Function


Private Sub Button2_Click(sender As Object, e As EventArgs) Handles Button2.Click
MakeRequests()
End Sub

End Class

Continue reading...
 
Back
Top