Envoi de données a un serveur en POST

Signaler
Messages postés
47
Date d'inscription
mardi 21 novembre 2006
Statut
Membre
Dernière intervention
5 novembre 2016
-
Messages postés
47
Date d'inscription
mardi 21 novembre 2006
Statut
Membre
Dernière intervention
5 novembre 2016
-
Bonjour,
J'ai fait une méthode (il y a quelques temps) qui fonctionnait pour envoyer des données (POST) a un serveur web.:
public static string GetPOSTResponse(string url, Hashtable ht)
        {
            using (var client = new WebClient())
            {
                client.Encoding = Encoding.UTF8;
                NameValueCollection values = new NameValueCollection();
                foreach (DictionaryEntry de in ht)
                    values.Add(de.Key.ToString(),de.Value.ToString());
                byte[] response = client.UploadValues(url, values);

                string s = Encoding.UTF8.GetString(response);
                return s;
            }
        }


cette méthode fonctionne dans un de mes programme mais dans un autre (sans raison apparente), elle n'envoie pas les données.
Pour tester, sur un fichier php, j'ai noté :
print_r($_POST);
die();

comme code retour, j'ai : Array\n(\n)\n
(soit pas de données, quoi que je mette comme Hashtable (j'ai biensûre vérifié que le Hashtable ne soit pas vide avant l'envoi, le NameValueCollection n'est pas vide non plus après le foreach).

Auriez-vous une idée, de ce qu'il peut bloquer? Dans l'autre programme, tout fonctionne normalement et même sur le fichier test.
Je commence a m'arracher les cheveux.. Je ne voudrais pas devenir chauve :(

3 réponses

Messages postés
219
Date d'inscription
mercredi 26 octobre 2011
Statut
Membre
Dernière intervention
22 juin 2017
9
Bonjour,

Dans le programme ou cela ne fonctionne pas, es-tu certain que tu as quelque chose dans ht?

Bonne journée.
Messages postés
47
Date d'inscription
mardi 21 novembre 2006
Statut
Membre
Dernière intervention
5 novembre 2016

Bonjour, et merci du retour.
Malheureusement, le ht est rempli(et revérifié en début) , il n'y a aucun bug, la demande est envoyée sans les variables post.
Je vais tenter de voir si en désinstallation visual basic et en le réinstallant, cela résoudra le problème.
Il y a peut être un soucis avec le compilateur ou le framework, je ne vois pas d'autre solution pour l'instant.


--
Messages postés
47
Date d'inscription
mardi 21 novembre 2006
Statut
Membre
Dernière intervention
5 novembre 2016

Bonjour,
J'ai désinstaller le framework et visual studio, j'ai tout réinstallé et fait le test

J'ai une methode :
Hashtable ht_MP_gpr = new Hashtable();
ht_MP_gpr.Add("Q", "A");
ht_MP_gpr.Add("U", "B");
ht_MP_gpr.Add("P", "C");
string gpr = Statique.GetPOSTResponse("http://[url]", ht_MP_gpr);


J'ai mis un point d'arrêt sur la dernière ligne et fait f11 pour suivre le pas a pas
Je fais bien 3 passage dans le foreach
et dans le watch j'ai
values["U"] "B" string
values["P"] "C" string
values["Q"] "A" string
s "Array\n(\n)\n" string

Le problème est donc toujours le même. Si vous connaissez une autre methode pour récupérer la valeur en REST.. Je prends!

Merci