J'ai cherché et lu à ce sujet et je ne pouvais rien de vraiment utile.
J'écris une petite application C # win qui permet à l'utilisateur d'envoyer des fichiers à un serveur Web, non pas par FTP, mais par HTTP en utilisant POST. Pensez-y comme un formulaire Web mais fonctionnant sur une application Windows.
J'ai mon objet HttpWebRequest créé en utilisant quelque chose comme ça
HttpWebRequest req = WebRequest.Create(uri) as HttpWebRequest
et définissez également les propriétés Method
, ContentType
et ContentLength
. Mais c'est jusqu'où je peux aller.
Voici mon morceau de code:
HttpWebRequest req = WebRequest.Create(uri) as HttpWebRequest;
req.KeepAlive = false;
req.Method = "POST";
req.Credentials = new NetworkCredential(user.UserName, user.UserPassword);
req.PreAuthenticate = true;
req.ContentType = file.ContentType;
req.ContentLength = file.Length;
HttpWebResponse response = null;
try
{
response = req.GetResponse() as HttpWebResponse;
}
catch (Exception e)
{
}
Ma question est donc de savoir comment envoyer un fichier (fichier texte, image, audio, etc.) avec C # via HTTP POST.
Merci!
c#
http
post
system.net
gabitoju
la source
la source
Réponses:
En utilisant .NET 4.5 (ou .NET 4.0 en ajoutant le package Microsoft.Net.Http de NuGet), il existe un moyen plus simple de simuler les demandes de formulaire. Voici un exemple:
la source
form.Add
est facultatif et utile uniquement pour les fichiers.Pour envoyer uniquement le fichier brut :
Si vous souhaitez émuler un formulaire de navigateur avec un
<input type="file"/>
, alors c'est plus difficile. Voir cette réponse pour une réponse multipart / form-data.la source
http://www.testproject.com/SavedFiles
- noter le//
Pour moi, j'ai
client.UploadFile
toujours enveloppé le contenu dans une requête en plusieurs parties, je devais donc le faire comme ceci:la source
J'avais eu le même problème et ce code suivant répondait parfaitement à ce problème:
la source
Vous devez écrire votre fichier dans le flux de requête:
la source
Pour publier des fichiers à partir de tableaux d'octets:
la source
la source
Utilisation de .NET 4.5 pour essayer d'effectuer le téléchargement de fichiers POST. J'ai essayé la plupart des méthodes ci-dessus mais en vain. Trouvé la solution ici https://www.c-sharpcorner.com/article/upload-any-file-using-http-post-multipart-form-data
Mais je ne suis pas enthousiaste car je ne comprends pas pourquoi nous devons encore gérer une programmation de bas niveau dans ces usages courants (devrait être bien géré par le framework)
la source