[WebClient]Envoyer en post un fichier + des données

ethan_decoster Messages postés 38 Date d'inscription mardi 31 janvier 2006 Statut Membre Dernière intervention 4 avril 2008 - 31 janv. 2008 à 04:47
ShareVB Messages postés 2676 Date d'inscription vendredi 28 juin 2002 Statut Membre Dernière intervention 13 janvier 2016 - 3 févr. 2008 à 21:26
Bonjour à tous,

Je dois envoyer sur un serveur PHP une requête avec 4 paramètres et un fichier par la méthode POST.

Pour cà je procède en 4 étapes :

1. récupérer un contenu du serveur :

System.Net.WebClient wc = new System.Net.WebClient();
byte[] responseStream = wc.DownloadData(new Uri("http://www.google.be"));
string result = Encoding.ASCII.GetString(responseString);

OK je reçois bien le code HTML de la page http://google.be dans la variable result

2. récupérer un contenu lorsque je passe des paramètres en POST au serveur :

System.Net.WebClient wc = new System.Net.WebClient();

NameValueCollection nvc = new NameValueCollection();
nvc.Add("lang", "fr");
nvc.Add("q","webclient");

wc.QueryString = nvc;

byte[] responseStream = wc.DownloadData(new Uri("http://www.google.be/search"));
string result = Encoding.ASCII.GetString(responseString);

OK je reçois bien le code HTML de la page google de recherche pour webclient.dans la variable result

3. uploader un fichier :

System.Net.WebClient wc = new System.Net.WebClient();
byte[] responseStream = wc.UploadFile(new Uri("adresseServeur"), "c:\\essai.txt");

Et c'est là que les ennuis commencent.D'après la doc çà doit fonctionner mais j'ai pas mon serveur de test sous la main.
Il est 4h46 du matin.

4. uploader un fichier et envoyer des variables en POST : 

N'en parlons même pas. Et là je me gratte les cheveu poour associer le point 2 et le point 3

Quelqu'un peut claircir mon code !!!!

Merci
Ethan

1 réponse

ShareVB Messages postés 2676 Date d'inscription vendredi 28 juin 2002 Statut Membre Dernière intervention 13 janvier 2016 26
3 févr. 2008 à 21:26
salut,

le point 2 ne te garantit pas le "POST"...il faut que tu passes explicitement le verb "POST" si tu veux du POST...

le point 3 doit marcher...sinon, insère un "POST" en deuxième paramètre....

point 4 : UploadValues avec "POST" explicite (on ne sait jamais), ensuite, normalement, tu mets un tableau de bytes contenant ton fichier avec son "nom de variable" ou si ca ne marche pas peut être un Convert.ToBase64String() de ton tableau de byte...ensuite, il y a peut être une variable "file-length" et "file-name", voir la rfc/doc de x-www-form-urlencoded...

ShareVB
0
Rejoignez-nous