Httpwebrequest Login Form

poupi98 - Modifié par poupi98 le 15/09/2015 à 11:56
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 - 4 avril 2016 à 23:00
Bonjour,
J'essaye de me loguer en httpwebrequest sur twitter mais je n'y arrive pas.
j'ai une erreur 100: Expect Continue, j'ai cherché déja un peu sur internet mais bon ça dit pas grand chose à part rajouter une ligne ( ServicePointManager.Expect100Continue = True ) ce qui ne fait rien du tout !

Le code utilisé pour se log à twitter est :
http://www.sourcecodester.com/visual-basic/5882/how-create-program-login-twitter-visual-basic.html

malheureusement le code ne fonctionne pas, il arrive bien à prendre le Token d'authentification pour le mettre dans la POST DATA avec la fonction regex . mais twitter retourne une erreur de connexion pour se loguer. pourquoi??
( je tiens à preciser que la verification ( le if a la fin ) est foireuse ^^ ça met sucess mais j'ai vérifié le mot clé est aussi dans la page ou l'on rentre les ID.

Cordialement,
j'espere que vous pourrez m'aider parceque je galere depuis plus d'une semaine! j'ai essayé déja pas mal de chose, rien n'y fait.. je comprends vraiment pas. peut etre un probleme de cookie, j'ai l'impression que ça vient de là. Fiddler n'affiche pas le cookie quand je me log pourtant il y a bien un cookie container..
J'utilise une autre methode pour recupérer le token qui necessite moins de code et qui fait la meme chose.

CODE DE SOURCECODESTER:

Imports System.IO
Imports System.Text
Imports System.Net
Imports System.Text.RegularExpressions
Public Class Form1
Private Function GetBetween(ByVal Source As String, ByVal Str1 As String, ByVal Str2 As String, Optional ByVal Index As Integer = 0) As String
Return Regex.Split(Regex.Split(Source, Str1)(Index + 1), Str2)(0)
End Function
Dim loginCookies As CookieContainer
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
Dim token As String = getToken()
Dim postData As String = "session%5Busername_or_email%5D=" & TextBox1.Text & "&session%5Bpassword%5D=" & TextBox2.Text & "&remember_me=1&return_to_ssl=false&scribe_log=&redirect_after_login=%2F&authenticity_token=" & token
Dim tempCookies As New CookieContainer
Dim encoding As New UTF8Encoding
Dim byteData As Byte() = encoding.GetBytes(postData)

Dim r As HttpWebRequest = DirectCast(HttpWebRequest.Create("https://twitter.com/sessions"), HttpWebRequest)
r.KeepAlive = True
r.Method = "POST"
r.CookieContainer = tempCookies
r.ContentType = "application/x-www-form-urlencoded"
r.Referer = "https://twitter.com/sessions"
r.UserAgent = "Mozilla/5.0 (Windows NT 6.2; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/30.0.1599.69 Safari/537.36"
r.ContentLength = byteData.Length
Dim re As Stream = r.GetRequestStream()
re.Write(byteData, 0, byteData.Length)
re.Close()
Dim res As HttpWebResponse = DirectCast(r.GetResponse(), HttpWebResponse)
tempCookies.Add(res.Cookies)
loginCookies = tempCookies
Dim src As String = New StreamReader(res.GetResponseStream()).ReadToEnd()
If (src.Contains("View my profile page")) Then
loginCookies = tempCookies
MsgBox("Success!")
Else
tempCookies = Nothing
MsgBox("Failed.")
End If
End Sub

Private Function getToken()
Dim r As HttpWebRequest = HttpWebRequest.Create("https://twitter.com/")
Dim re As HttpWebResponse = r.GetResponse()
Dim src As String = New StreamReader(re.GetResponseStream()).ReadToEnd()
Return GetBetween(src, "<input type=""hidden"" name=""authenticity_token"" value=""", """")
End Function
End Class

2 réponses

Patrick02170 Messages postés 58 Date d'inscription dimanche 27 mars 2011 Statut Membre Dernière intervention 28 juin 2016
4 avril 2016 à 21:36
Bonjour, si j'ai bien compris, vous cherchez à vous connecter à twitter via un webbrowser.
Avez vous trouvez comment vous connecter ?

Car dans le cas contraire, j'ai les codes vb de connexion seulement.



--
0
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 236
4 avril 2016 à 23:00
Bonjour, Patrick02170,
As-tu vraiment l'impression que le demandeur de surcroît de passage (non inscrit) reviendra ici, 7 mois plus tard, pour y voir ta proposition de correction d'un code qu'il a glané ailleurs ?
0