HttpWebRequest Kelas
Definisi
Penting
Beberapa informasi terkait produk prarilis yang dapat diubah secara signifikan sebelum dirilis. Microsoft tidak memberikan jaminan, tersirat maupun tersurat, sehubungan dengan informasi yang diberikan di sini.
Menyediakan implementasi khusus HTTP dari kelas WebRequest.
public ref class HttpWebRequest : System::Net::WebRequest
public ref class HttpWebRequest : System::Net::WebRequest, System::Runtime::Serialization::ISerializable
public class HttpWebRequest : System.Net.WebRequest
public class HttpWebRequest : System.Net.WebRequest, System.Runtime.Serialization.ISerializable
[System.Serializable]
public class HttpWebRequest : System.Net.WebRequest, System.Runtime.Serialization.ISerializable
type HttpWebRequest = class
inherit WebRequest
type HttpWebRequest = class
inherit WebRequest
interface ISerializable
[<System.Serializable>]
type HttpWebRequest = class
inherit WebRequest
interface ISerializable
Public Class HttpWebRequest
Inherits WebRequest
Public Class HttpWebRequest
Inherits WebRequest
Implements ISerializable
- Warisan
- Warisan
- Atribut
- Penerapan
Contoh
Contoh kode berikut membuat HttpWebRequest untuk URI http://www.contoso.com/
.
HttpWebRequest^ myReq = dynamic_cast<HttpWebRequest^>(WebRequest::Create( "http://www.contoso.com/" ));
HttpWebRequest myReq =
(HttpWebRequest)WebRequest.Create("http://www.contoso.com/");
Dim myReq As HttpWebRequest = _
WebRequest.Create("http://www.contoso.com/")
Keterangan
Hati
WebRequest
, HttpWebRequest
, ServicePoint
, dan WebClient
usang, dan Anda tidak boleh menggunakannya untuk pengembangan baru. Gunakan HttpClient sebagai gantinya.
Kelas HttpWebRequest menyediakan dukungan untuk properti dan metode yang ditentukan dalam WebRequest dan untuk properti dan metode tambahan yang memungkinkan pengguna berinteraksi langsung dengan server menggunakan HTTP.
Jangan gunakan konstruktor HttpWebRequest. Gunakan metode WebRequest.Create untuk menginisialisasi objek HttpWebRequest baru. Jika skema untuk Pengidentifikasi Sumber Daya Seragam (URI) http://
atau https://
, Create mengembalikan objek HttpWebRequest.
Metode GetResponse membuat permintaan sinkron ke sumber daya yang ditentukan dalam properti RequestUri dan mengembalikan HttpWebResponse yang berisi objek respons. Data respons dapat diterima dengan menggunakan aliran yang dikembalikan oleh GetResponseStream. Jika objek respons atau aliran respons ditutup, data yang tersisa akan hangus. Data yang tersisa akan dikosongkan dan soket akan digunakan kembali untuk permintaan berikutnya saat menutup objek respons atau aliran jika kondisi berikut menyimpan: ini adalah permintaan tetap hidup atau disalurkan, hanya sejumlah kecil data yang perlu diterima, atau data yang tersisa diterima dalam interval waktu kecil. Jika tidak ada penahanan kondisi yang disebutkan atau waktu pengurasan terlampaui, soket akan ditutup. Untuk koneksi tetap hidup atau pipa, kami sangat menyarankan agar aplikasi membaca aliran hingga EOF. Ini memastikan bahwa soket akan digunakan kembali untuk permintaan berikutnya yang menghasilkan performa yang lebih baik dan lebih sedikit sumber daya yang digunakan.
Saat Anda ingin mengirim data ke sumber daya, metode GetRequestStream mengembalikan objek Stream untuk digunakan untuk mengirim data. Metode BeginGetRequestStream dan EndGetRequestStream menyediakan akses asinkron ke aliran data kirim.
Untuk autentikasi klien dengan HttpWebRequest, sertifikat klien harus diinstal di penyimpanan Sertifikat saya pengguna saat ini.
Kelas HttpWebRequest melemparkan WebException saat kesalahan terjadi saat mengakses sumber daya. Properti WebException.Status berisi nilai WebExceptionStatus yang menunjukkan sumber kesalahan. Saat WebException.StatusWebExceptionStatus.ProtocolError, properti Response berisi HttpWebResponse yang diterima dari sumber daya.
HttpWebRequest mengekspos nilai header HTTP umum yang dikirim ke sumber daya Internet sebagai properti, diatur menurut metode, atau diatur oleh sistem; tabel berikut berisi daftar lengkap. Anda dapat mengatur header lain di properti Headers sebagai pasangan nama/nilai. Perhatikan bahwa server dan cache dapat mengubah atau menambahkan header selama permintaan.
Tabel berikut mencantumkan header HTTP yang diatur baik menurut properti atau metode atau sistem.
Header | Diatur oleh |
---|---|
Accept |
Diatur oleh properti Accept. |
Connection |
Diatur oleh properti Connection, properti KeepAlive. |
Content-Length |
Diatur oleh properti ContentLength. |
Content-Type |
Diatur oleh properti ContentType. |
Expect |
Diatur oleh properti Expect. |
Date |
Diatur oleh sistem ke tanggal saat ini. |
Host |
Diatur oleh sistem ke informasi host saat ini. |
If-Modified-Since |
Diatur oleh properti IfModifiedSince. |
Range |
Diatur oleh metode AddRange. |
Referer |
Diatur oleh properti Referer. |
Transfer-Encoding |
Diatur oleh properti TransferEncoding (properti SendChunked harus true ). |
User-Agent |
Diatur oleh properti UserAgent. |
Nota
HttpWebRequest terdaftar secara otomatis. Anda tidak perlu memanggil metode RegisterPrefix untuk mendaftarkan System.Net.HttpWebRequest sebelum menggunakan URI yang dimulai dengan http://
atau https://
.
File konfigurasi komputer atau aplikasi lokal dapat menentukan bahwa proksi default digunakan. Jika properti Proxy ditentukan, maka pengaturan proksi dari properti Proxy mengambil alih file konfigurasi komputer atau aplikasi lokal dan instans HttpWebRequest akan menggunakan pengaturan proksi yang ditentukan. Jika tidak ada proksi yang ditentukan dalam file konfigurasi dan properti Proxy tidak ditentukan, kelas HttpWebRequest menggunakan pengaturan proksi yang diwarisi dari opsi Internet di komputer lokal. Jika tidak ada pengaturan proksi dalam opsi Internet, permintaan dikirim langsung ke server.
Nota
Framework menyimpan sesi SSL saat dibuat dan mencoba menggunakan kembali sesi yang di-cache untuk permintaan baru, jika memungkinkan. Saat mencoba menggunakan kembali sesi SSL, Kerangka Kerja menggunakan elemen pertama ClientCertificates (jika ada), atau mencoba menggunakan kembali sesi anonim jika ClientCertificates kosong.
Nota
Untuk alasan keamanan, cookie dinonaktifkan secara default. Jika Anda ingin menggunakan cookie, gunakan properti CookieContainer untuk mengaktifkan cookie.
.NET Framework 4.6 menyertakan fitur keamanan baru yang memblokir cipher dan algoritma hashing yang tidak aman untuk koneksi. Aplikasi yang menggunakan TLS/SSL melalui API seperti HttpClient, HttpWebRequest, FTPClient, SmtpClient, SslStream, dll. dan menargetkan .NET Framework 4.6 mendapatkan perilaku yang lebih aman secara default.
Pengembang mungkin ingin menolak perilaku ini untuk mempertahankan interoperabilitas dengan layanan SSL3 atau layanan TLS w/ RC4 yang ada. Artikel ini menjelaskan cara mengubah kode Anda sehingga perilaku baru dinonaktifkan.
Konstruktor
HttpWebRequest() |
Kedaluwarsa.
Kedaluwarsa.
Menginisialisasi instans baru kelas HttpWebRequest. Konstruktor ini sudah usang. |
HttpWebRequest(SerializationInfo, StreamingContext) |
Kedaluwarsa.
Kedaluwarsa.
Kedaluwarsa.
Kedaluwarsa.
Menginisialisasi instans baru kelas HttpWebRequest dari instans yang ditentukan dari kelas SerializationInfo dan StreamingContext. Konstruktor ini sudah usang. |
Properti
Accept |
Mendapatkan atau mengatur nilai header HTTP |
Address |
Mendapatkan Pengidentifikasi Sumber Daya Seragam (URI) sumber daya Internet yang benar-benar menanggapi permintaan tersebut. |
AllowAutoRedirect |
Mendapatkan atau menetapkan nilai yang menunjukkan apakah permintaan harus mengikuti respons pengalihan. |
AllowReadStreamBuffering |
Mendapatkan atau menetapkan nilai yang menunjukkan apakah akan buffer yang diterima dari sumber daya Internet. |
AllowWriteStreamBuffering |
Mendapatkan atau menetapkan nilai yang menunjukkan apakah akan menyangga data yang dikirim ke sumber daya Internet. |
AuthenticationLevel |
Mendapatkan atau menetapkan nilai yang menunjukkan tingkat autentikasi dan peniruan yang digunakan untuk permintaan ini. (Diperoleh dari WebRequest) |
AutomaticDecompression |
Mendapatkan atau mengatur jenis dekompresi yang digunakan. |
CachePolicy |
Mendapatkan atau mengatur kebijakan cache untuk permintaan ini. (Diperoleh dari WebRequest) |
ClientCertificates |
Mendapatkan atau mengatur kumpulan sertifikat keamanan yang terkait dengan permintaan ini. |
Connection |
Mendapatkan atau mengatur nilai header HTTP |
ConnectionGroupName |
Mendapatkan atau mengatur nama grup koneksi untuk permintaan tersebut. |
ConnectionGroupName |
Saat ditimpa di kelas turunan, mendapatkan atau mengatur nama grup koneksi untuk permintaan tersebut. (Diperoleh dari WebRequest) |
ContentLength |
Mendapatkan atau mengatur header HTTP |
ContentLength |
Saat ditimpa di kelas turunan, mendapatkan atau mengatur panjang konten data permintaan yang dikirim. (Diperoleh dari WebRequest) |
ContentType |
Mendapatkan atau mengatur nilai header HTTP |
ContinueDelegate |
Mendapatkan atau mengatur metode delegasi yang dipanggil ketika respons HTTP 100-lanjut diterima dari sumber daya Internet. |
ContinueTimeout |
Mendapatkan atau mengatur batas waktu, dalam milidetik, untuk menunggu hingga 100-Lanjutkan diterima dari server. |
CookieContainer |
Mendapatkan atau mengatur cookie yang terkait dengan permintaan. |
CreatorInstance |
Kedaluwarsa.
Ketika ditimpa di kelas turunan, mendapatkan objek pabrik yang berasal dari kelas IWebRequestCreate yang digunakan untuk membuat WebRequest dibuat untuk membuat permintaan ke URI yang ditentukan. (Diperoleh dari WebRequest) |
Credentials |
Mendapatkan atau mengatur informasi autentikasi untuk permintaan tersebut. |
Date |
Mendapatkan atau mengatur nilai header HTTP |
DefaultCachePolicy |
Mendapatkan atau mengatur kebijakan cache default untuk permintaan ini. |
DefaultMaximumErrorResponseLength |
Mendapatkan atau mengatur panjang maksimum default respons kesalahan HTTP. |
DefaultMaximumResponseHeadersLength |
Mendapatkan atau mengatur default untuk properti MaximumResponseHeadersLength. |
Expect |
Mendapatkan atau mengatur nilai header HTTP |
HaveResponse |
Mendapatkan nilai yang menunjukkan apakah respons telah diterima dari sumber daya Internet. |
Headers |
Menentukan kumpulan pasangan nama/nilai yang membentuk header HTTP. |
Host |
Mendapatkan atau mengatur nilai header Host untuk digunakan dalam permintaan HTTP independen dari URI permintaan. |
IfModifiedSince |
Mendapatkan atau mengatur nilai header HTTP |
ImpersonationLevel |
Mendapatkan atau mengatur tingkat peniruan untuk permintaan saat ini. (Diperoleh dari WebRequest) |
KeepAlive |
Mendapatkan atau menetapkan nilai yang menunjukkan apakah akan membuat koneksi persisten ke sumber daya Internet. |
MaximumAutomaticRedirections |
Mendapatkan atau mengatur jumlah maksimum pengalihan yang diikuti permintaan. |
MaximumResponseHeadersLength |
Mendapatkan atau mengatur panjang maksimum yang diizinkan dari header respons. |
MediaType |
Mendapatkan atau mengatur jenis media permintaan. |
Method |
Mendapatkan atau mengatur metode untuk permintaan. |
Pipelined |
Mendapatkan atau menetapkan nilai yang menunjukkan apakah akan membuat alur permintaan ke sumber daya Internet. |
PreAuthenticate |
Mendapatkan atau menetapkan nilai yang menunjukkan apakah akan mengirim header Otorisasi dengan permintaan. |
PreAuthenticate |
Saat ditimpa di kelas turunan, menunjukkan apakah akan melakukan pra-autentikasi permintaan. (Diperoleh dari WebRequest) |
ProtocolVersion |
Mendapatkan atau mengatur versi HTTP yang akan digunakan untuk permintaan. |
Proxy |
Mendapatkan atau mengatur informasi proksi untuk permintaan tersebut. |
Proxy |
Ketika ditimpa di kelas turunan, mendapatkan atau mengatur proksi jaringan untuk digunakan untuk mengakses sumber daya Internet ini. (Diperoleh dari WebRequest) |
ReadWriteTimeout |
Mendapatkan atau mengatur waktu habis dalam milidetik saat menulis ke atau membaca dari aliran. |
Referer |
Mendapatkan atau mengatur nilai header HTTP |
RequestUri |
Mendapatkan Pengidentifikasi Sumber Daya Seragam (URI) asli dari permintaan. |
SendChunked |
Mendapatkan atau menetapkan nilai yang menunjukkan apakah akan mengirim data dalam segmen ke sumber daya Internet. |
ServerCertificateValidationCallback |
Mendapatkan atau mengatur fungsi panggilan balik untuk memvalidasi sertifikat server. |
ServicePoint |
Mendapatkan titik layanan yang akan digunakan untuk permintaan. |
SupportsCookieContainer |
Mendapatkan nilai yang menunjukkan apakah permintaan menyediakan dukungan untuk CookieContainer. |
Timeout |
Mendapatkan atau menetapkan nilai batas waktu dalam milidetik untuk metode GetResponse() dan GetRequestStream(). |
Timeout |
Mendapatkan atau mengatur lamanya waktu, dalam milidetik, sebelum waktu permintaan habis. (Diperoleh dari WebRequest) |
TransferEncoding |
Mendapatkan atau mengatur nilai header HTTP |
UnsafeAuthenticatedConnectionSharing |
Mendapatkan atau menetapkan nilai yang menunjukkan apakah akan mengizinkan berbagi koneksi yang diautentikasi NTLM berkecepatan tinggi. |
UseDefaultCredentials |
Mendapatkan atau mengatur nilai Boolean yang mengontrol apakah kredensial default dikirim dengan permintaan. |
UseDefaultCredentials |
Saat ditimpa di kelas turunan, mendapatkan atau menetapkan nilai Boolean yang mengontrol apakah DefaultCredentials dikirim dengan permintaan. (Diperoleh dari WebRequest) |
UserAgent |
Mendapatkan atau mengatur nilai header HTTP |
Metode
Abort() |
Membatalkan permintaan ke sumber daya Internet. |
AddRange(Int32) |
Menambahkan header rentang byte ke permintaan untuk rentang tertentu dari awal atau akhir data yang diminta. |
AddRange(Int32, Int32) |
Menambahkan header rentang byte ke permintaan untuk rentang tertentu. |
AddRange(Int64) |
Menambahkan header rentang byte ke permintaan untuk rentang tertentu dari awal atau akhir data yang diminta. |
AddRange(Int64, Int64) |
Menambahkan header rentang byte ke permintaan untuk rentang tertentu. |
AddRange(String, Int32) |
Menambahkan header Rentang ke permintaan rentang tertentu dari awal atau akhir data yang diminta. |
AddRange(String, Int32, Int32) |
Menambahkan header rentang ke permintaan untuk rentang tertentu. |
AddRange(String, Int64) |
Menambahkan header Rentang ke permintaan rentang tertentu dari awal atau akhir data yang diminta. |
AddRange(String, Int64, Int64) |
Menambahkan header rentang ke permintaan untuk rentang tertentu. |
BeginGetRequestStream(AsyncCallback, Object) |
Memulai permintaan asinkron untuk objek Stream yang digunakan untuk menulis data. |
BeginGetResponse(AsyncCallback, Object) |
Memulai permintaan asinkron ke sumber daya Internet. |
CreateObjRef(Type) |
Membuat objek yang berisi semua informasi relevan yang diperlukan untuk menghasilkan proksi yang digunakan untuk berkomunikasi dengan objek jarak jauh. (Diperoleh dari MarshalByRefObject) |
EndGetRequestStream(IAsyncResult) |
Mengakhiri permintaan asinkron untuk objek Stream yang digunakan untuk menulis data. |
EndGetRequestStream(IAsyncResult, TransportContext) |
Mengakhiri permintaan asinkron untuk objek Stream yang digunakan untuk menulis data dan menghasilkan TransportContext yang terkait dengan aliran. |
EndGetResponse(IAsyncResult) |
Mengakhiri permintaan asinkron ke sumber daya Internet. |
Equals(Object) |
Menentukan apakah objek yang ditentukan sama dengan objek saat ini. (Diperoleh dari Object) |
GetHashCode() |
Mengembalikan nilai hash untuk instans WebRequest. |
GetHashCode() |
Berfungsi sebagai fungsi hash default. (Diperoleh dari Object) |
GetLifetimeService() |
Kedaluwarsa.
Mengambil objek layanan seumur hidup saat ini yang mengontrol kebijakan seumur hidup untuk instans ini. (Diperoleh dari MarshalByRefObject) |
GetObjectData(SerializationInfo, StreamingContext) |
Kedaluwarsa.
Kedaluwarsa.
Kedaluwarsa.
Mengisi SerializationInfo dengan data yang diperlukan untuk membuat serialisasi objek target. |
GetObjectData(SerializationInfo, StreamingContext) |
Kedaluwarsa.
Mengisi SerializationInfo dengan data yang diperlukan untuk membuat serialisasi objek target. (Diperoleh dari WebRequest) |
GetRequestStream() |
Mendapatkan objek Stream untuk digunakan untuk menulis data permintaan. |
GetRequestStream() |
Saat ditimpa di kelas turunan, mengembalikan Stream untuk menulis data ke sumber daya Internet. (Diperoleh dari WebRequest) |
GetRequestStream(TransportContext) |
Mendapatkan objek Stream untuk digunakan untuk menulis data permintaan dan menghasilkan TransportContext yang terkait dengan aliran. |
GetRequestStreamAsync() |
Saat ditimpa di kelas turunan, mengembalikan Stream untuk menulis data ke sumber daya Internet sebagai operasi asinkron. (Diperoleh dari WebRequest) |
GetResponse() |
Mengembalikan respons dari sumber daya Internet. |
GetResponse() |
Saat ditimpa di kelas turunan, mengembalikan respons terhadap permintaan Internet. (Diperoleh dari WebRequest) |
GetResponseAsync() |
Saat ditimpa di kelas turunan, mengembalikan respons terhadap permintaan Internet sebagai operasi asinkron. (Diperoleh dari WebRequest) |
GetType() |
Mendapatkan Type instans saat ini. (Diperoleh dari Object) |
InitializeLifetimeService() |
Kedaluwarsa.
Mendapatkan objek layanan seumur hidup untuk mengontrol kebijakan seumur hidup untuk instans ini. (Diperoleh dari MarshalByRefObject) |
MemberwiseClone() |
Membuat salinan dangkal dari Objectsaat ini. (Diperoleh dari Object) |
MemberwiseClone(Boolean) |
Membuat salinan dangkal objek MarshalByRefObject saat ini. (Diperoleh dari MarshalByRefObject) |
ToString() |
Mengembalikan string yang mewakili objek saat ini. (Diperoleh dari Object) |
Implementasi Antarmuka Eksplisit
ISerializable.GetObjectData(SerializationInfo, StreamingContext) |
Kedaluwarsa.
Kedaluwarsa.
Kedaluwarsa.
Mengisi SerializationInfo dengan data yang diperlukan untuk membuat serialisasi objek target. |
Metode Ekstensi
GetRequestMetadata(HttpWebRequest) |
Mendapatkan metadata untuk permintaan keluar yang akan digunakan untuk tujuan telemetri. |
SetRequestMetadata(HttpWebRequest, RequestMetadata) |
Mengatur metadata untuk permintaan keluar yang akan digunakan untuk tujuan telemetri. |
Berlaku untuk
Lihat juga
- Elemen DefaultProxy (Pengaturan Jaringan)
- Perubahan pada autentikasi NTLM untuk HTTPWebRequest di versi 3.5 SP1