poupi98
-
Modifié par poupi98 le 15/09/2015 à 11:56
ucfoutu
Messages postés18038Date d'inscriptionlundi 7 décembre 2009StatutModérateurDernière intervention11 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
ucfoutu
Messages postés18038Date d'inscriptionlundi 7 décembre 2009StatutModérateurDernière intervention11 avril 2018211 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 ?