begin process at 2012 02 11 05:19:04
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Archive C#

 > 

Archives

 > 

Réseau / Internet

 > 

TcpClient ou HttpWebRequest pour un POST ou GET


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

TcpClient ou HttpWebRequest pour un POST ou GET

samedi 18 décembre 2004 à 10:14:35 | TcpClient ou HttpWebRequest pour un POST ou GET

Blacknight91

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
samedi 18 décembre 2004 à 18:47:04 | Re : TcpClient ou HttpWebRequest pour un POST ou GET

jesusonline

Membre Club Administrateur CodeS-SourceS
j'ai pas compris ce que tu veux faire, mais si t'es chez free cherche pas plus loin.
Free n'accepte pas asp et encore moins asp.net, il faut que tu fasses du php pour etre heberger chez free.
phpcs.com


Cyril
samedi 18 décembre 2004 à 20:18:49 | Re : TcpClient ou HttpWebRequest pour un POST ou GET

TUHABITES

Salut,
Jesusonline a raison, sur Free c'est en php. En php les uploads se font, je crois via la méthode PUT. Pour ce qui est du C# voilà un code pour transfèrer un fichier sur le serveur, mais cela ne fonctionnera pas sur tes pages perso de free.

if (File1.PostedFile != null)
{
File1.PostedFile.SaveAs(Server.MapPath("temp\\MonBeauFichier.bmp"));
}

et du côté HTML:
<input id="File1" style="WIDTH: 201px; HEIGHT: 22px" type="file" maxlength="30" size="15" runat="server" />
dimanche 19 décembre 2004 à 10:46:53 | Re : TcpClient ou HttpWebRequest pour un POST ou GET

Blacknight91

Bl@cknight

Merci à vous 2 de vos précisions mais cela ne m'avance guère.

Quelques précisions tt de m:
ma page perso me servant à uploader est en PHP, et fonctionne très bien quand je l'utilise via un formulaire et là méthode POST.

continuer pr vos réponses :)
dimanche 19 décembre 2004 à 12:08:05 | Re : TcpClient ou HttpWebRequest pour un POST ou GET

jesusonline

Membre Club Administrateur CodeS-SourceS
euh ???? je crois que t'as pas compris la !!!

tu ne peux pas te servir d'asp.net sur free !!!

va soir sur phpcs.com pour du php


Cyril
dimanche 19 décembre 2004 à 13:03:32 | Re : TcpClient ou HttpWebRequest pour un POST ou GET

Blacknight91

Bl@cknight

jesusonline, pourquoi me parles tu d'asp ???

je ne développe pas en ASP.

J'ai dit que mes pages perso étaient en PHP.
Et mon programme C# appelle la page d'upload.
dimanche 19 décembre 2004 à 13:45:15 | Re : TcpClient ou HttpWebRequest pour un POST ou GET

jesusonline

Membre Club Administrateur CodeS-SourceS
ok j'avais pas du tout compris comme ca, mille excuse alors, mais ton message etait pas tout à fait clair.

donc pour faire ca, tu as deux solution soit passé par un service web, que tu auras créer en php, puis a partir de ton programme C# appeller ce service web. par contre je ne sais pas si on peut faire des services web.
Sinon l'autre méthode, c'est d'utiliser tout les longs code que tu as vu, il n'existe rien de tres simple pour faire ce genre de chose

La classe HttpWebRequest sert principalement pour asp.net et je ne pense pas qu'elle soit utilisable.
et tout le namespace system.web, sert aussi pour la plupart qu'a asp.net

regarde plutot dans system.net il me semble. Mais pour faire ce que tu veux, à moins qu'on puisse faire un service web en php, il va te falloir pas mal de code.


Encore désolé pour ma non comprehension


Cyril
lundi 20 décembre 2004 à 11:05:11 | Re : TcpClient ou HttpWebRequest pour un POST ou GET

Blacknight91

Bl@cknight

J'ai essayé autre chose avec la classe Webclient.
Voici mon code:


string val = @"fichier=C:\apercu_but.bmp";
string uriString = "http://www.monsite.com/upload.php";
WebClient myWebClient = new WebClient();
myWebClient.Headers.Add("Content-Type","multipart/form-data");
byte[] byteArray = Encoding.ASCII.GetBytes(val);
byte[] responseArray = myWebClient.UploadData(uriString,"POST",byteArray);
Console.WriteLine(Encoding.ASCII.GetString(responseArray));


Mais j'ai toujours une réponse négative de la part de ma page web.
Voici le code PHP de la page:

<?
$fichier = $_POST['fichier'];

if (move_uploaded_file($fichier,$fichier_name))
{
echo'Upload Réussi. Adresse du Fichier: <a ref=http://catley.free.fr/updateProFlor/'.$fichier_name.'>'; //L upload c est déroule avec succès
}
else
{
echo'Une erreur est survenue pendant l\'upload de: '.$fichier_name.'\n';//erreur d upload
echo'Une erreur est survenue pendant l\'upload de: '.$fichier;
}
?>


En fait la page de recoit rien via le POST. Donc elle affiche mon message d'erreur.

Quelqu'un a t il déjà utilisé la classe webClient ?


Cette discussion est classée dans : req, data, get, tcpclient, httpwebrequest


Répondre à ce message

Sujets en rapport avec ce message

POST {content : encoded} httpwebrequest [ par c0nsur ] Bonjour,jaimerais savoir comment POSTER aec httpwebrequest à une page .PHP en fait, je sais comment poster les données.... mais jai un probleme : vo HTTPWebRequest et credential [ par dufoli ] Je voudrai recréer cet en-tête et ce qui me pose problème c'est : "Autorization"J'utilise HttpWebRequest, mais malgré avoir rempli un objet pour l aut envoyé une requete à un serveur et attendre une réponse [ par bjrttlemonde ] Bonjour tout le monde, Etant débutante en c# .net je cherche à envoyé une requête à un serveur et recevoir une réponse voici la méthode que j'utilise Problème : Silverlight 3 +WCF + Assembly C# [ par TrucDeFou ] Bonjour, Je suis totalement bloqué dans mon dev : Je développe une application Silverlight 3 qui doit utiliser une assembly déjà existante. J'ai don Insérer dans une table à partir d'un formulaire [ par indice ] Salut à Tous, Je suis développeur et débutante en C# et j'utilise la console Windows donc un formulaire. j'ai écrit un code pour recueillir des infos Utilisation du Data application block et de configuration d'environement avec pre-built events [ par jekow ] Bonjour, je suis en train de mettre en place une configuration dépendant de l'environnement (Dev, recette, prod) sur une application Windows. Si le sy Linq to Entities, probeleme qui semble etre simple [ par azerto00 ] Bonjour, tout d'abord, je tiens a vous précisez que mon message ne contiendra pas d'accent car je travaille sur un clavier anglais. (Firefox et son ou Static et private [ par electro ] Bonjour. Petit soucis. J'ai déclaré dans ma première classe cette méthode qui est appelée par d'autres classes : public static void Aff_Status_Comm [C#] [TCPClient] Connexion à distance [ par jlucdebenque ] Bonjour, J'ai deux machines, une relier via Wifi à mon routeur (réseau: 192.168.2.x) La deuxième est connecter par câble croisé à l'autre (réseau: 19 Envoi de data >15ko [ par olivier201174 ] Bonjour, il me semble que j'ai déjà vu des traces du meme probleme sur ces forums, mais je ne suis pas parvenu à régler le probleme... j'ai une appl


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Février 2012
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
272829    

Consulter la suite du CalendriCode

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,936 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales