C# HTTP POST-Datei-Upload: Eine umfassende Anleitung
Diese Anleitung beschreibt, wie Sie mit C# Dateien über eine HTTP-POST-Anfrage auf einen Remote-Server hochladen.
1. Erstellen der HTTP-Anfrage
Erstellen Sie zunächst ein HttpWebRequest
-Objekt, das die Ziel-URL angibt. Setzen Sie die Eigenschaft Method
auf „POST“ und definieren Sie ContentType
und ContentLength
entsprechend.
2. Authentifizierungs- und Verbindungsparameter
Konfigurieren Sie die Eigenschaft Credentials
der Anfrage mit den erforderlichen Benutzeranmeldeinformationen. Aktivieren Sie die Vorauthentifizierung, indem Sie PreAuthenticate
auf true
setzen.
3. Erstellen mehrteiliger Formulardaten
Für C# 4.5 und höher nutzen Sie die Klasse MultipartFormDataContent
, um mehrteilige Formulardaten zu erstellen. Fügen Sie sowohl Zeichenfolgen- als auch Dateidaten mit StringContent
bzw. StreamContent
hinzu.
4. Senden der Anfrage und Bearbeiten der Antwort
Senden Sie die Anfrage mit req.GetResponse()
und verwalten Sie mögliche Ausnahmen. Verarbeiten Sie die Antwort des Servers entsprechend.
5. Codebeispiel
Der folgende Code demonstriert den Prozess:
<code class="language-csharp">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; using (var formData = new MultipartFormDataContent()) { formData.Add(new StringContent(paramString), "param1", "param1"); formData.Add(new StreamContent(paramFileStream), "file1", "file1"); formData.Add(new ByteArrayContent(paramFileBytes), "file2", "file2"); using (var client = new HttpClient()) { var response = await client.PostAsync(uri, formData); // Process the response here... } }</code>
Das obige ist der detaillierte Inhalt vonWie lade ich Dateien über HTTP POST mit C# hoch?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!