Sollte ich prüfen, die Reaktion der WebClient.UploadFile zu wissen, ob der upload erfolgreich war?
Habe ich nie verwendet der WebClient vor und ich bin mir nicht sicher, ob ich sollte prüfen, die response vom server wissen, ob der upload erfolgreich war oder wenn ich die Datei als hochgeladen, wenn es keine Ausnahme.
Sollte ich überprüfen Sie die Antwort, wie kann ich das machen? Analyse resposeHeaders Eigenschaft?
Vielen Dank im Voraus.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Den
UploadFile
Methode gibt einebyte[]
enthält die Antwort der remote-server zurückgegeben. Je nachdem, wie der server verwaltet die Antworten auf Anfragen zum hochladen (und Fehler-Bedingungen (siehe Hinweis 1 unten)), die Sie benötigen, um zu überprüfen, die Antwort. Sie können die string-Reaktion durch die Umwandlung in einen string, zum Beispiel dieses schreiben die Antwort auf die Konsole-Fenster:Sagte, dass, wenn der remote-server zurück, alles andere als eine
HTTP 200
(d.h. der Erfolg) der Aufruf zu UploadFile wirft eine WebException. Das Sie fangen können, und befassen sich mit der Art, die Ihrer Anwendung am ehesten entspricht.So setzen, dass alle zusammen
Hinweis 1 Als Beispiel habe ich eine Datei-upload-Dienst, der nie Problem alles andere als eine HTTP-200-code, alle Fehler sind gefangen in den Dienst und diese "analysiert" in eine XML-Struktur, die wird an den Aufrufer zurückgegeben. Der Anrufer analysiert dann das XML zu validieren, dass der upload erfolgreich war.
Wenn der upload liefert einen anderen StatusCode als 200 (oder 200-Reihe), WebClient.UploadFile erheben sollten, eine WebException.
Als Plugin, ich habe eine code-Referenz-Bibliothek auf BizArk enthält eine WebHelper-Klasse, macht es einfach, mehrere Dateien hochladen und Formular-Werte an der gleichen Zeit. Das Projekt nennt sich BizArk.
In der Beispiele an msdn-überprüfen Sie die Antwort, so könnte es gut sein Stil, aber ich Neige dazu, es nicht zu tun mich selbst und habe nicht bekommen, verbrannt doch.
Können Sie auch async-Methode
UploadFileAsync
und die Ergebnisse werden im event-handlerUploadFileCompletedEventHandler
aufgetreten EreignisUploadFileCompleted
. Vermutlich haben Sie zusätzlichen code hinzufügen für die Synchronisation.