begin process at 2010 02 10 12:24:31
  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 Data Access Application Block [ par OIynK ] Salut, Pour un programme de gestion de droits d'utilisateurs en C#, j'ai comme contrainte d'utiliser les "data access application block". J'ai trouv SetValue sur une DataRow.ItemArray [ par SlaineFr ] Bonjour,J'ai repris recemment le développement en .NET, plus particulièrement en CSharp, et à l'heure actuelle je suis bloqué sur une betise mais je n parameter sur OleDbCommand [ par grome ] Bonjour à tous,D'après vous qu'est ce qui ne fonctionne pas dans le code suivant. J'ai une erreur quand je tente d'ajouter les paramètre à la commande SQL -> MySql.Data.MySqlClient [ par abdoulax ] J'utilise la librairie MySql.Data.MySqlClient cependant j'ai du mal à l'utiliser comme je veux !! Est-ce que qlq1 connais un tuto Access : insertion dans 2 tables avec un numéro auto [ par Gaxx ] Bonjour,Dèrrière ce titre se cache un problème fréquent apparemment non résolu dans le forum : Récupérer la valeur d'un champ en Numéro auto après une listview selection clignotement help [ par emmanuel9 ] Bonjour, j'ai un listview avec des personnes dedans et quand je clique sur une personne j'ai a droite deux champs de saisie nom et prenom  qui affiche Erreur : "Violation de l'accès concurrentiel" ? [ par moihenry ] Bonjour, j'ai une datagrid elle se rempli avec une dataset d'une bdd. Après je fais des modifs dans la datagrid. Je fais : data_set = data_grid.DataS Jointure dans un DATASET, c'est possible ?? [ par Pplessis81 ] Bonjour, je debute avec ADO.net et il ya un truc que je vois pas trop comment faire, ouf il y a CODES Sources.Donc voila j'ai un data set avec plein d


Nos sponsors


Sondage...

Comparez les prix


HTC Hero

Entre 550€ et 550€

CalendriCode

Février 2010
LMMJVSD
1234567
891011121314
15161718192021
22232425262728

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 : 1,030 sec (4)

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