Bagikan melalui


HttpWebRequest.GetResponse Metode

Definisi

Mengembalikan respons dari sumber daya Internet.

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

Mengembalikan

WebResponse yang berisi respons dari sumber daya Internet.

Pengecualian

Aliran sudah digunakan oleh panggilan sebelumnya ke BeginGetResponse(AsyncCallback, Object).

-atau-

TransferEncoding diatur ke nilai dan SendChunked adalah false.

Method adalah GET atau HEAD, dan lebih ContentLength besar atau sama dengan nol atau SendChunked adalah true.

-atau-

KeepAlive adalah true, AllowWriteStreamBuffering adalah false, ContentLength adalah -1, SendChunked adalah false, dan Method adalah POST atau PUT.

-atau-

HttpWebRequest memiliki badan entitas tetapi GetResponse() metode dipanggil tanpa memanggil GetRequestStream() metode .

-atau-

ContentLength lebih besar dari nol, tetapi aplikasi tidak menulis semua data yang dijanjikan.

Validator cache permintaan menunjukkan bahwa respons untuk permintaan ini dapat dilayani dari cache; namun, permintaan ini mencakup data yang akan dikirim ke server. Permintaan yang mengirim data tidak boleh menggunakan cache. Pengecualian ini dapat terjadi jika Anda menggunakan validator cache kustom yang salah diimplementasikan.

Abort() sebelumnya dipanggil.

-atau-

Periode waktu habis untuk permintaan kedaluwarsa.

-atau-

Terjadi kesalahan saat memproses permintaan ini.

Contoh

Contoh kode berikut mendapatkan respons untuk permintaan.

#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.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
End Class
'
'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.
'...
'
'

Keterangan

Metode mengembalikan GetResponseWebResponse objek yang berisi respons dari sumber daya Internet. Instans aktual yang dikembalikan adalah HttpWebResponse, dan dapat dijeniskan ke kelas tersebut untuk mengakses properti khusus HTTP.

ProtocolViolationException dilemparkan dalam beberapa kasus ketika properti yang ditetapkan pada HttpWebRequest kelas bertentangan. Pengecualian ini terjadi jika aplikasi mengatur ContentLength properti dan SendChunked properti ke true, lalu mengirim permintaan HTTP GET. Pengecualian ini terjadi jika aplikasi mencoba mengirim gugus ke server yang hanya mendukung protokol HTTP 1.0, di mana ini tidak didukung. Pengecualian ini terjadi jika aplikasi mencoba mengirim data tanpa mengatur ContentLength properti atau SendChunked adalah false ketika buffering dinonaktifkan dan pada koneksi keepalive ( KeepAlive properti adalah true).

Perhatian

Anda harus memanggil Close metode untuk menutup aliran dan merilis koneksi. Kegagalan untuk melakukannya dapat menyebabkan aplikasi Anda kehabisan koneksi.

Saat menggunakan metode POST, Anda harus mendapatkan aliran permintaan, menulis data yang akan diposting, dan menutup aliran. Metode ini memblokir menunggu konten diposting; jika tidak ada set waktu habis dan Anda tidak menyediakan konten, utas panggilan memblokir tanpa batas waktu.

Catatan

Beberapa panggilan untuk GetResponse mengembalikan objek respons yang sama; permintaan tidak diterbitkan kembali.

Catatan

Aplikasi Anda tidak dapat mencampur metode sinkron dan asinkron untuk permintaan tertentu. Jika Anda memanggil GetRequestStream metode , Anda harus menggunakan GetResponse metode untuk mengambil respons.

Catatan

WebException Jika dilemparkan, gunakan Response properti dan Status pengecualian untuk menentukan respons dari server.

Catatan

Anggota ini mengeluarkan informasi pelacakan saat Anda mengaktifkan pelacakan jaringan di aplikasi Anda. Untuk informasi selengkapnya, lihat Pelacakan Jaringan di .NET Framework.

Catatan

Untuk alasan keamanan, cookie dinonaktifkan secara default. Jika Anda ingin menggunakan cookie, gunakan CookieContainer properti untuk mengaktifkan cookie.

Berlaku untuk

Lihat juga