Bl@cknight
Bonjour,
Je voudrais savoir comment utiliser l'une de ces 2 classes (TcpClient ou HttpWebRequest) afin d'envoyer une requête POST ou GET dans le but d'uploader un fichier par Http.
J'ai essayé avec ses 2 classes mais en vain.
Voici le code que j'ai fait avec TcpClient:
//ce que je veux passer par un POST ou GET
string val = @"fichier=C:\apercu_but.bmp";
TcpClient client = new TcpClient("siteweb",80);
NetworkStream ns = client.GetStream();
string data = "GET /upload.php HTTP/1.0\r\n";
data += "Content-type: multipart/form-data\r\n";
data += "Content-Length: "+val.Length.ToString()+"\r\n";
data += "\r\n";
data += val+"\r\n";
ns.Write(System.Text.Encoding.ASCII.GetBytes(data),0,data.Length);
ns.Close();
client.Close();
J'ai aussi fait un essai avec HttpWebRequest, mais en vain:
string val = @"fichier=C:\apercu_but.bmp";
HttpWebRequest Req = (HttpWebRequest)WebRequest.Create("http://monsite/upload.php");
Req.Method = "GET"; // POST ou GET
Req.Referer = "Mon referer";
Req.ContentType = "application/x-www-form-urlencoded";
Req.ContentLength = data.Length;
Sw = new StreamWriter(Req.GetRequestStream());
Sw.Write(Data); // On écrit les données
Sw.Close(); // Puis on ferme le flux
Sr = new StreamReader(((HttpWebResponse)Req.GetResponse()).GetResponseStream());
Reponse = Sr.ReadToEnd(); // On choppe la réponse
Sr.Close(); // Et on ferme
Avec ses 2 méthodes d'envoi différentes, j'ai à chaque fois un echec :(
Je précise que je suis chez Free.
Quelqu'un saurait il comment s'y prendre ?
Avec un exemple clair et précis.
Merci de vos réponses