Httpwebrequest Login Form

-
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
Afficher la suite 

Votre réponse

2 réponses

Messages postés
58
Date d'inscription
dimanche 27 mars 2011
Dernière intervention
28 juin 2016
0
Merci
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.



--
Commenter la réponse de Patrick02170
Messages postés
18039
Date d'inscription
lundi 7 décembre 2009
Statut
Modérateur
Dernière intervention
11 avril 2018
0
Merci
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 ?
Commenter la réponse de ucfoutu

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.