Ableiten von WebResponse

Die WebResponse-Klasse ist eine abstrakte Basisklasse, die die grundlegenden Methoden und Eigenschaften bereitstellt, mit denen eine protokollspezifische Antwort erstellt wird, die in das austauschbare Protokollmodell von .NET Framework passt. Anwendungen, die die WebRequest-Klasse zur Datenanforderung von Ressourcen verwenden, erhalten die Antworten in Form einer WebResponse. Protokollspezifische WebResponse-Nachfolger müssen die abstrakten Member der WebResponse-Klasse implementieren.

WebResponse-Nachfolger werden durch die zugeordnete WebRequest-Klasse erstellt. HttpWebResponse-Instanzen werden beispielsweise nur durch Aufrufen von HttpWebRequest.GetResponse oder HttpWebRequest.EndGetResponse erstellt. Jede WebResponse enthält das Ergebnis einer Anforderung an eine Ressource und sollte nicht wiederverwendet werden.

ContentLength-Eigenschaft

Die ContentLength-Eigenschaft gibt die Anzahl der Datenbytes an, die auf dem Datenstrom verfügbar sind, der von der GetResponseStream-Methode zurückgegeben wird. Die ContentLength-Eigenschaft gibt weder die Anzahl der Bytes der vom Server zurückgegebenen Headerinformationen noch die der Metadateninformationen an. Sie gibt nur die Anzahl der Datenbytes der angeforderten Ressource selbst an.

ContentType-Eigenschaft

Die ContentType-Eigenschaft stellt spezielle Informationen zur Verfügung, die Sie für Ihr Protokoll an den Client senden müssen, um den Typ des vom Server gesendeten Inhalts zu identifizieren. In der Regel ist dies der MIME-Inhaltstyp aller zurückgegebenen Daten.

Header-Eigenschaft

Die Headers-Eigenschaft enthält eine beliebige Auflistung von Name-Wert-Paaren der Metadaten, die der Antwort zugeordnet sind. Alle für das Protokoll erforderlichen Metadaten, die als Name/Wert-Paar ausgedrückt werden, können in die Header-Eigenschaft aufgenommen werden.

Sie müssen die Header-Eigenschaft nicht verwenden, um die Header-Metadaten zu nutzen. Protokollspezifische Metadaten können als Eigenschaften verfügbar gemacht werden. So macht die HttpWebResponse.LastModified-Eigenschaft z.B. den Last-Modified-HTTP-Header verfügbar. Wenn Sie die Header-Metadaten als Eigenschaft verfügbar machen, sollten Sie vermeiden, dass die gleiche Eigenschaft die Header-Eigenschaft verwendet.

ResponseUri-Eigenschaft

Die ResponseUri-Eigenschaft enthält den URI der Ressource, die die Antwort eigentlich bereitgestellt hat. Für Protokolle, die keine Umleitung unterstützen, ist ResponseUri identisch mit der RequestUri-Eigenschaft der WebRequest, von der die Antwort erstellt wurde. Unterstützt das Protokoll das Umleiten der Anforderung, enthält ResponseUri den URI der Antwort.

Close-Methode

Die Close-Methode schließt alle von der Anforderung und der Antwort erstellten Verbindungen und bereinigt die Ressourcen, die von der Antwort verwendet wurden. Die Close-Methode schließt alle von der Antwort verwendeten Streaminstanzen. Sie löst jedoch keine Ausnahme aus, wenn der Antwortstream zuvor durch einen Aufruf der Stream.Close-Methode geschlossen wurde.

GetResponseStream-Methode

Die GetResponseStream-Methode gibt einen Datenstrom zurück, der die Antwort der angeforderten Ressource enthält. Der Antwortstream enthält nur die von der Ressource zurückgegebenen Daten. In der Antwort enthaltene Header oder Metadaten sollten aus der Antwort entfernt und der Anwendung über protokollspezifische Eigenschaften oder über die Header-Eigenschaft verfügbar gemacht werden.

Die von der GetResponseStream-Methode zurückgegebene Streaminstanz ist im Besitz der Anwendung und kann geschlossen werden, ohne WebResponse zu schließen. Konventionsgemäß wird durch Aufrufen der WebResponse.Close-Methode auch der von GetResponse zurückgegebene Datenstrom geschlossen.

Siehe auch