HttpWebRequest.GetResponse HttpWebRequest.GetResponse HttpWebRequest.GetResponse HttpWebRequest.GetResponse Method

Definition

Gibt eine Antwort von einer Internetressource zurück.Returns a response from an Internet resource.

public:
 override System::Net::WebResponse ^ GetResponse();
public override System.Net.WebResponse GetResponse ();
override this.GetResponse : unit -> System.Net.WebResponse
Public Overrides Function GetResponse () As WebResponse

Gibt zurück

Eine WebResponse mit der Antwort von der Internetressource.A WebResponse that contains the response from the Internet resource.

Ausnahmen

Der Stream wird bereits von einem vorherigen Aufruf von BeginGetResponse(AsyncCallback, Object) verwendet.The stream is already in use by a previous call to BeginGetResponse(AsyncCallback, Object).

- oder --or- TransferEncoding ist auf einen Wert festgelegt, und SendChunked ist false.TransferEncoding is set to a value and SendChunked is false.

Method ist GET oder HEAD, und entweder ist ContentLength größer oder gleich 0 (null), oder SendChunked ist true.Method is GET or HEAD, and either ContentLength is greater or equal to zero or SendChunked is true.

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

- oder --or- HttpWebRequest verfügt über einen Entitätskörper, die GetResponse()-Methode wird jedoch aufgerufen, ohne dass die GetRequestStream()-Methode aufgerufen wird.The HttpWebRequest has an entity body but the GetResponse() method is called without calling the GetRequestStream() method.

- oder --or- ContentLength ist größer als 0 (null), von der Anwendung werden jedoch nicht alle zugesagten Daten geschrieben.The ContentLength is greater than zero, but the application does not write all of the promised data.

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.The request cache validator indicated that the response for this request can be served from the cache; however, this request includes data to be sent to the server. Anforderungen, die Daten senden, dürfen den Cache nicht verwenden.Requests that send data must not use the cache. Diese Ausnahme kann auftreten, wenn Sie eine benutzerdefinierte Cachebestätigung verwenden, die nicht ordnungsgemäß implementiert wurde.This exception can occur if you are using a custom cache validator that is incorrectly implemented.

Abort() wurde bereits aufgerufen.Abort() was previously called.

- oder --or- Das Timeout für die Anforderung ist abgelaufen.The time-out period for the request expired.

- oder --or- Fehler beim Verarbeiten der Anforderung.An error occurred while processing the request.

Beispiele

Im folgenden Codebeispiel ruft die Antwort für eine Anforderung ab.The following code example gets the response for a request.

#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>

*/
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>

*/
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.
'...
'
'

Hinweise

Die GetResponse Methode gibt eine WebResponse -Objekt, das die Antwort der Internetressource enthält.The GetResponse method returns a WebResponse object that contains the response from the Internet resource. Die tatsächliche Instanz zurückgegeben wird ein HttpWebResponse, und auf diese Klasse zum Zugriff auf HTTP-spezifische Eigenschaften umgewandelt werden kann.The actual instance returned is an HttpWebResponse, and can be typecast to that class to access HTTP-specific properties.

Ein ProtocolViolationException in vielen Fällen ausgelöst, wenn die Eigenschaften für Festlegen der HttpWebRequest Klasse stehen in Konflikt.A ProtocolViolationException is thrown in several cases when the properties set on the HttpWebRequest class are conflicting. Diese Ausnahme tritt auf, wenn eine Anwendung wird die ContentLength Eigenschaft und die SendChunked Eigenschaft true, und sendet dann eine HTTP GET-Anforderung.This exception occurs if an application sets the ContentLength property and the SendChunked property to true, and then sends an HTTP GET request. Diese Ausnahme tritt auf, wenn eine Anwendung, zum Senden von aufgeteilte auf einem Server, der nur HTTP 1.0-Protokoll unterstützt versucht, in denen dies wird nicht unterstützt.This exception occurs if an application tries to send chunked to a server that only supports HTTP 1.0 protocol, where this is not supported. Diese Ausnahme tritt auf, wenn eine Anwendung, zum Senden von Daten festlegen, ohne versucht die ContentLength Eigenschaft oder die SendChunked ist false bei der Pufferung deaktiviert ist, und klicken Sie auf eine Keepalive-Verbindung (die KeepAlive Eigenschaft true).This exception occurs if an application tries to send data without setting the ContentLength property or the SendChunked is false when buffering is disabled and on a keepalive connection (the KeepAlive property is true).

Achtung

Rufen Sie die Close Methode, um den Stream zu schließen und die Verbindung freizugeben.You must call the Close method to close the stream and release the connection. Bei unterlassen kann dazu führen, dass Ihre Anwendung nicht mehr genügend Verbindungen.Failure to do so may cause your application to run out of connections.

Wenn Sie die POST-Methode verwenden zu können, müssen Sie den Anforderungsstream abzurufen, Schreiben Sie die Daten bereitgestellt werden und schließt den Stream.When using the POST method, you must get the request stream, write the data to be posted, and close the stream. Diese Methode blockiert, warten auf Inhalt zu veröffentlichen; Wenn kein Timeout festgelegt ist, und Sie keinen Inhalt, der aufrufende Thread blockiert auf unbestimmte Zeit bieten.This method blocks waiting for content to post; if there is no time-out set and you do not provide content, the calling thread blocks indefinitely.

Hinweis

Mehrere Aufrufe GetResponse desselben Objekts Antwort zurückgegeben wird die Anforderung nicht erneut gesendet.Multiple calls to GetResponse return the same response object; the request is not reissued.

Hinweis

Synchrone und asynchrone Methoden für eine bestimmte Anforderung kann nicht Ihrer Anwendung vermischt werden.Your application cannot mix synchronous and asynchronous methods for a particular request. Aufrufen der GetRequestStream -Methode müssen Sie verwenden die GetResponse Methode zum Abrufen der Antwort.If you call the GetRequestStream method, you must use the GetResponse method to retrieve the response.

Hinweis

Wenn eine WebException ist ausgelöst wird, verwenden die Response und Status Eigenschaften der Ausnahme, um die Antwort vom Server zu bestimmen.If a WebException is thrown, use the Response and Status properties of the exception to determine the response from the server.

Hinweis

Dieser Member gibt Ablaufverfolgungsinformationen aus, wenn Sie die Netzwerkablaufverfolgung in der Anwendung aktivieren.This member outputs trace information when you enable network tracing in your application. Weitere Informationen finden Sie unter Netzwerkablaufverfolgung in .NET Framework.For more information, see Network Tracing in the .NET Framework.

Hinweis

Aus Sicherheitsgründen sind Cookies standardmäßig deaktiviert.For security reasons, cookies are disabled by default. Wenn Sie Cookies verwenden möchten, verwenden Sie die CookieContainer Eigenschaft, um Cookies zu aktivieren.If you wish to use cookies, use the CookieContainer property to enable cookies.

Gilt für:

Siehe auch