Freigeben über


HttpWebRequest.GetResponse-Methode

Gibt eine Antwort von einer Internetressource zurück.

Namespace: System.Net
Assembly: System (in system.dll)

Syntax

'Declaration
Public Overrides Function GetResponse As WebResponse
'Usage
Dim instance As HttpWebRequest
Dim returnValue As WebResponse

returnValue = instance.GetResponse
public override WebResponse GetResponse ()
public:
virtual WebResponse^ GetResponse () override
public WebResponse GetResponse ()
public override function GetResponse () : WebResponse

Rückgabewert

Eine WebResponse mit der Antwort von der Internetressource.

Ausnahmen

Ausnahmetyp Bedingung

InvalidOperationException

Der Stream wird bereits von einem vorherigen Aufruf von BeginGetResponse verwendet.

- oder -

TransferEncoding ist auf einen Wert festgelegt, und SendChunked ist false.

ProtocolViolationException

Method ist GET oder HEAD, und entweder ist ContentLength größer oder gleich 0 (null), oder SendChunked ist true.

- oder -

KeepAlive ist true, AllowWriteStreamBuffering ist false, ContentLength ist -1, SendChunked ist false, und Method ist POST oder PUT.

NotSupportedException

Die Cachebestätigung der Anforderung hat angegeben, dass die Antwort für diese Anforderung vom Cache bereitgestellt werden kann. Diese Anforderung enthält jedoch Daten, die an den Server gesendet werden sollen. Anforderungen, die Daten senden, dürfen den Cache nicht verwenden. Diese Ausnahme kann auftreten, wenn Sie eine benutzerdefinierte Cachebestätigung verwenden, die nicht ordnungsgemäß implementiert wurde.

WebException

Abort wurde bereits zuvor aufgerufen.

- oder -

Das Timeout für die Anforderung ist abgelaufen.

- oder -

Fehler bei der Verarbeitung der Anforderung.

Hinweise

Die GetResponse-Methode gibt ein WebResponse-Objekt mit der Antwort von der Internetressource zurück. Die zurückgegebene tatsächliche Instanz ist eine HttpWebResponse, die für den Zugriff auf HTTP-spezifische Eigenschaften in diese Klasse umgewandelt werden kann.

Warnung

Sie müssen die Close-Methode aufrufen, um den Stream zu schließen und die Verbindung freizugeben. Andernfalls stehen der Anwendung möglicherweise nicht ausreichend Verbindungen zur Verfügung.

Bei Verwendung der POST-Methode müssen Sie den Anforderungsstream abrufen, die zu sendenden Daten schreiben und den Stream schließen. Diese Methode ist beim Warten auf das Senden des Inhalts blockiert. Wenn kein Timeout festgelegt ist und Sie keinen Inhalt bereitstellen, ist der aufrufende Thread unbegrenzt blockiert.

Hinweis

Mehrere Aufrufe von GetResponse geben das gleiche Antwortobjekt zurück. Die Anforderung wird nicht erneut gesendet.

Hinweis

Die Anwendung kann für eine bestimmte Anforderung keine synchronen und asynchronen Methoden kombinieren. Wenn Sie die GetRequestStream-Methode aufrufen, müssen Sie die GetResponse-Methode verwenden, um die Antwort abzurufen.

Hinweis

Wenn eine WebException ausgelöst wird, verwenden Sie die Response-Eigenschaft und die Status-Eigenschaft der Ausnahme, um die Antwort des Servers zu bestimmen.

Hinweis

Dieser Member gibt Ablaufverfolgungsinformationen aus, wenn Sie die Netzwerkablaufverfolgung in der Anwendung aktivieren. Weitere Informationen finden Sie unter Netzwerkablaufverfolgung.

Hinweis

Cookies sind aus Sicherheitsgründen standardmäßig deaktiviert. Wenn Sie Cookies verwenden möchten, aktivieren Sie Cookies mithilfe der CookieContainer-Eigenschaft.

Beispiel

Im folgenden Codebeispiel wird die Antwort auf eine Anforderung abgerufen.

Imports System
Imports System.Net
Imports System.Text
Imports System.IO


    Public Class Test

        ' Specify the URL to receive the request.
        Public Shared Sub Main(ByVal args() As String)
        Dim request As HttpWebRequest = CType(WebRequest.Create(args(0)), HttpWebRequest)


        ' Set some reasonable limits on resources used by this request
        request.MaximumAutomaticRedirections = 4
        request.MaximumResponseHeadersLength = 4

        ' Set credentials to use for this request.
        request.Credentials = CredentialCache.DefaultCredentials

        Dim response As HttpWebResponse = CType(request.GetResponse(), HttpWebResponse)

        Console.WriteLine("Content length is {0}", response.ContentLength)
        Console.WriteLine("Content type is {0}", response.ContentType)

        ' Get the stream associated with the response.
        Dim receiveStream As Stream = response.GetResponseStream()

        ' Pipes the stream to a higher level stream reader with the required encoding format. 
        Dim readStream As New StreamReader(receiveStream, Encoding.UTF8)

        Console.WriteLine("Response stream received.")
        Console.WriteLine(readStream.ReadToEnd())
        response.Close()
        readStream.Close()
    End Sub 'Main
End Class 'Test
'
'The output from this example will vary depending on the value passed into Main 
'but will be similar to the following:
'
'Content length is 1542
'Content type is text/html; charset=utf-8
'Response stream received.
'<html>
'...
'</html>
'
'
using System;
using System.Net;
using System.Text;
using System.IO;


    public class Test
    {
        // Specify the URL to receive the request.
        public static void Main (string[] args)
        {
            HttpWebRequest request = (HttpWebRequest)WebRequest.Create (args[0]);

            // Set some reasonable limits on resources used by this request
            request.MaximumAutomaticRedirections = 4;
            request.MaximumResponseHeadersLength = 4;
            // Set credentials to use for this request.
            request.Credentials = CredentialCache.DefaultCredentials;
            HttpWebResponse response = (HttpWebResponse)request.GetResponse ();

            Console.WriteLine ("Content length is {0}", response.ContentLength);
            Console.WriteLine ("Content type is {0}", response.ContentType);
             
            // Get the stream associated with the response.
            Stream receiveStream = response.GetResponseStream ();

            // Pipes the stream to a higher level stream reader with the required encoding format. 
            StreamReader readStream = new StreamReader (receiveStream, Encoding.UTF8);

            Console.WriteLine ("Response stream received.");
            Console.WriteLine (readStream.ReadToEnd ());
            response.Close ();
            readStream.Close ();
        }
    }

/*
The output from this example will vary depending on the value passed into Main 
but will be similar to the following:

Content length is 1542
Content type is text/html; charset=utf-8
Response stream received.
<html>
...
</html>

*/
#using <System.dll>

using namespace System;
using namespace System::Net;
using namespace System::Text;
using namespace System::IO;

// Specify the URL to receive the request.
int main()
{
   array<String^>^args = Environment::GetCommandLineArgs();
   HttpWebRequest^ request = dynamic_cast<HttpWebRequest^>(WebRequest::Create( args[ 1 ] ));
   
   // Set some reasonable limits on resources used by this request
   request->MaximumAutomaticRedirections = 4;
   request->MaximumResponseHeadersLength = 4;
   
   // Set credentials to use for this request.
   request->Credentials = CredentialCache::DefaultCredentials;
   HttpWebResponse^ response = dynamic_cast<HttpWebResponse^>(request->GetResponse());
   Console::WriteLine( "Content length is {0}", response->ContentLength );
   Console::WriteLine( "Content type is {0}", response->ContentType );
   
   // Get the stream associated with the response.
   Stream^ receiveStream = response->GetResponseStream();
   
   // Pipes the stream to a higher level stream reader with the required encoding format. 
   StreamReader^ readStream = gcnew StreamReader( receiveStream,Encoding::UTF8 );
   Console::WriteLine( "Response stream received." );
   Console::WriteLine( readStream->ReadToEnd() );
   response->Close();
   readStream->Close();
}

/*
The output from this example will vary depending on the value passed into Main 
but will be similar to the following:

Content length is 1542
Content type is text/html; charset=utf-8
Response stream received.
<html>
...
</html>

*/

Plattformen

Windows 98, Windows 2000 SP4, Windows CE, Windows Millennium Edition, Windows Mobile für Pocket PC, Windows Mobile für Smartphone, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition

.NET Framework unterstützt nicht alle Versionen sämtlicher Plattformen. Eine Liste der unterstützten Versionen finden Sie unter Systemanforderungen.

Versionsinformationen

.NET Framework

Unterstützt in: 2.0, 1.1, 1.0

.NET Compact Framework

Unterstützt in: 2.0, 1.0

Siehe auch

Referenz

HttpWebRequest-Klasse
HttpWebRequest-Member
System.Net-Namespace
Timeout

Weitere Ressourcen

defaultProxy-Element (Netzwerkeinstellungen)