Ich habe danach gesucht und gelesen und konnte nichts wirklich Nützliches bestrafen.
Ich schreibe eine kleine C # Win-App, mit der Benutzer Dateien nicht per FTP, sondern per HTTP mithilfe von POST an einen Webserver senden können. Stellen Sie sich das wie ein Webformular vor, das jedoch in einer Windows-Anwendung ausgeführt wird.
Ich habe mein HttpWebRequest-Objekt mit so etwas erstellt
HttpWebRequest req = WebRequest.Create(uri) as HttpWebRequest
und auch die festgelegt Method
, ContentType
und ContentLength
Eigenschaften. Aber so weit kann ich gehen.
Das ist mein 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)
{
}
Meine Frage ist also im Grunde, wie ich eine Nachricht (Textdatei, Bild, Audio usw.) mit C # über HTTP POST senden kann.
Vielen Dank!
c#
http
post
system.net
gabitoju
quelle
quelle
Antworten:
Mit .NET 4.5 (oder .NET 4.0 durch Hinzufügen des Microsoft.Net.Http- Pakets von NuGet) können Formularanforderungen einfacher simuliert werden. Hier ist ein Beispiel:
quelle
form.Add
ist optional und nur für Dateien nützlich.Um die RAW - Datei sendet nur :
Wenn Sie ein Browserformular mit einem emulieren möchten
<input type="file"/>
, ist dies schwieriger. In dieser Antwort finden Sie eine mehrteilige / Formulardaten-Antwort.quelle
http://www.testproject.com/SavedFiles
- Beachten Sie die//
Für mich war
client.UploadFile
der Inhalt immer noch in eine mehrteilige Anfrage eingewickelt, also musste ich es so machen:quelle
Ich hatte das gleiche Problem und dieser folgende Code antwortete perfekt auf dieses Problem:
quelle
Sie müssen Ihre Datei in den Anforderungsdatenstrom schreiben:
quelle
So veröffentlichen Sie Dateien aus Byte-Arrays:
quelle
quelle
Verwenden von .NET 4.5, um den Upload von Formular-POST-Dateien durchzuführen. Versuchte die meisten der oben genannten Methoden, aber ohne Erfolg. Die Lösung finden Sie hier https://www.c-sharpcorner.com/article/upload-any-file-using-http-post-multipart-form-data
Aber ich bin nicht begeistert, da ich nicht verstehe, warum wir uns in diesen allgemeinen Verwendungen immer noch mit solch niedriger Programmierung befassen müssen (sollte vom Framework gut gehandhabt werden).
quelle