Re: Unpublished Geocaches : un GPX de vos caches non publiée
Posté : dim. 22 nov. 2015 23:00
Je viens de tester et j'ai n'ai pas eu de problème, j'ai pu télécharger le fichier GPX. Combien de caches contient le GPX que tu voulais ?
Le forum du geocaching en France
https://france-geocaching.fr/forum/
https://france-geocaching.fr/forum/viewtopic.php?f=22&t=2908
Code : Tout sélectionner
// Préparation des données du POST
Dictionary<String, String> post_values = new Dictionary<String, String>();
post_values.Add("__EVENTTARGET", "");
post_values.Add("__EVENTARGUMENT", "");
post_values.Add("ctl00$ContentBody$tbUsername", username); // $ContentBody obligatoire maintenant
post_values.Add("ctl00$ContentBody$tbPassword", password); // $ContentBody obligatoire maintenant
post_values.Add("ctl00$ContentBody$cbRememberMe", "On"); // $ContentBody obligatoire maintenant
post_values.Add("ctl00$ContentBody$btnSignIn", "Login"); // $ContentBody obligatoire maintenant
// Les viewstate semblent ogligatoires maintenant
// Je passe ceux que j'ai récupéré lors d'un premier appel GET à la page de login
post_values.Add("__VIEWSTATE", __VIEWSTATE[0]);
if (__VIEWSTATE.Length > 1)
{
for (int i = 1; i < __VIEWSTATE.Length; i++)
{
post_values.Add("__VIEWSTATE" + i.ToString(), __VIEWSTATE[i]);
}
post_values.Add("__VIEWSTATEFIELDCOUNT", __VIEWSTATE.Length.ToString());
}
// Encodage des données du POST
String post_string = "";
foreach (KeyValuePair<String, String> post_value in post_values)
{
post_string += post_value.Key + "=" + HttpUtility.UrlEncode(post_value.Value) + "&";
}
post_string = post_string.TrimEnd('&');
// Création de la requête pour s'authentifier
objRequest = (HttpWebRequest)WebRequest.Create(VOID_URL);
objRequest.Method = "POST";
objRequest.ContentLength = post_string.Length;
objRequest.ContentType = "application/x-www-form-urlencoded";
objRequest.Proxy = GetProxy(); // Créer votre proxy ici si besoin, sinon mettre NULL
objRequest.CookieContainer = cookieJar;
//objRequest.KeepAlive = false; // PATCH SARCE ?
// on envoit les POST data dans un stream (écriture)
StreamWriter myWriter = null;
myWriter = new StreamWriter(objRequest.GetRequestStream());
myWriter.Write(post_string);
myWriter.Close();
// lecture du stream de réponse et conversion en chaine
objResponse = (HttpWebResponse)objRequest.GetResponse();
using (StreamReader responseStream = new StreamReader(objResponse.GetResponseStream()))
{
post_response = responseStream.ReadToEnd();
responseStream.Close();
}