HttpWebRequest POST et GET
Bonjour/ bonsoir à tous,
Tout d'abord je tiens à m'excuser du code que vous allez voir puisque je débute avec les requêtes web et au final il en résulte plus de la bidouille que du code d'expert :mrgreen: !
Mon but est de me connecter automatiquement à un site via ma console puis de télécharger une source sur l'espace client en string pour ensuite l'afficher dans ma console et l'exploiter, donc j'utilises d'abord la méthode POST puis ensuite la méthode GET.
Le problème est que j'ai l'impression que ma connexion ne se fait pas, en effet la seul source qui se télécharge est un document.location.replace qui me ramène vers l'index.
Je tiens aussi à préciser que la connexion se fait par des comptes que j'ai stockés dans un fichier texte et que la source sera téléchargée une fois pour chaque compte (puisqu'elle contient certaines infos différentes pour chacun).
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59
|
foreach (String line in File.ReadAllLines("account.txt"))
{
if (!line.StartsWith("Credentials"))
{
continue;
}
string[] credentials = line.Replace("Credentials: ", "").Split(',');
String username = credentials[0];
String password = credentials[1];
Console.WriteLine(password);
var request = (HttpWebRequest)WebRequest.Create("http://bobbalive.fr/index.php?do=process_login");
var postData = "username=" + username;
postData += "&password=" + password;
var data = Encoding.UTF8.GetBytes(postData);
request.Method = "POST";
//request.ContentType = "application/x-www-form-urlencoded";
request.ContentLength = data.Length;
request.UserAgent = "Foo";
request.Accept = "text/html";
using (var stream = request.GetRequestStream())
{
stream.Write(data, 0, data.Length);
}
var response = (HttpWebResponse)request.GetResponse();
var responseString = new StreamReader(response.GetResponseStream()).ReadToEnd();
using (var client = new SSOClient())
{
HttpWebRequest request2 = (HttpWebRequest)WebRequest.Create("http://bobbalive.fr/client.php");
request2.Method = "GET";
request2.UserAgent = "Foo";
request2.Accept = "text/html";
string clientSource;
using (StreamReader reader = new StreamReader(request2.GetResponse().GetResponseStream()))
{
clientSource = reader.ReadToEnd();
}
foreach (string source in clientSource.Split(Environment.NewLine.ToCharArray()))
{
Console.WriteLine(source);
}
}
} |
Merci par avance de votre aide !
Ps : (si vous voulez essayer par vous même de vous connecter avec un compte sur le site, voici un compte de test : Credentials: Compte1,okok45)