Sollte ich die Antwort von WebClient.UploadFile überprüfen, um zu wissen, ob der Upload erfolgreich war?

7

Ich habe den WebClient nie zuvor verwendet und bin mir nicht sicher, ob ich die Antwort vom Server überprüfen sollte, um zu wissen, ob der Upload erfolgreich war oder ob ich die Datei hochgeladen habe, wenn keine Ausnahme vorliegt.

Wenn ich die Antwort überprüfen sollte, wie kann ich das tun? Parsen resposeHeaders-Eigenschaft?

Vielen Dank im Voraus.

    
Ignacio Soler Garcia 15.12.2010, 14:55
quelle

3 Antworten

16

Die Methode UploadFile gibt byte[] zurück, die die Antwort enthält, die der ferne Server zurückgegeben hat. Abhängig davon, wie der Server Antworten auf Upload-Anforderungen verwaltet (und Fehlerbedingungen (siehe Hinweis 1)), müssen Sie diese Antwort überprüfen. Sie können die String-Antwort abrufen, indem Sie sie in eine Zeichenfolge konvertieren. So wird beispielsweise die Antwort in das Konsolenfenster geschrieben:

%Vor%

Wenn der entfernte Server etwas anderes als HTTP 200 (d. h. Erfolg) zurückgibt, löst der Aufruf von UploadFile eine WebException aus. Dies können Sie fangen und damit umgehen, welche Art und Weise für Ihre Anwendung am besten geeignet ist.

Also alles zusammensetzen

%Vor%

Hinweis 1 Als Beispiel habe ich einen Datei-Upload-Dienst, der nie etwas anderes als einen HTTP 200-Code ausgibt. Alle Fehler werden im Service abgefangen und in eine XML-Struktur "geparst" Das wird an den Aufrufer zurückgegeben. Der Aufrufer analysiert diesen XML-Code, um zu bestätigen, dass der Upload erfolgreich war.

    
MrEyes 15.12.2010, 17:17
quelle
2

In den Beispielen , die bei msdn zur Verfügung gestellt werden, überprüfen sie die Antwort, damit es ein guter Stil ist, aber ich neige dazu, es nicht selbst zu tun und bin noch nicht verbrannt.

    
hanDerPeder 15.12.2010 17:05
quelle
2

Wenn der Upload einen anderen Statuscode als 200 (oder 200 Bereich) zurückgibt, sollte WebClient.UploadFile eine WebException auslösen.

Als Plug-in habe ich eine Code-Referenzbibliothek auf BizArk, die eine WebHelper-Klasse enthält, die es erleichtert, mehrere Dateien gleichzeitig hochzuladen und Werte zu bilden. Das Projekt heißt BizArk .

    
Brian 15.12.2010 17:07
quelle

Tags und Links