HttpClient Kelas

Definisi

Mengirim permintaan HTTP dan menerima respons HTTP dari sumber daya yang diidentifikasi oleh URI. Untuk panduan pemrograman untuk kelas HttpClient , dan contoh kode, lihat topik konseptual HttpClient .

public ref class HttpClient sealed : IClosable, IStringable
/// [Windows.Foundation.Metadata.Activatable(65536, Windows.Foundation.UniversalApiContract)]
/// [Windows.Foundation.Metadata.Activatable(Windows.Web.Http.IHttpClientFactory, 65536, Windows.Foundation.UniversalApiContract)]
/// [Windows.Foundation.Metadata.ContractVersion(Windows.Foundation.UniversalApiContract, 65536)]
/// [Windows.Foundation.Metadata.MarshalingBehavior(Windows.Foundation.Metadata.MarshalingType.Agile)]
/// [Windows.Foundation.Metadata.Threading(Windows.Foundation.Metadata.ThreadingModel.Both)]
class HttpClient final : IClosable, IStringable
/// [Windows.Foundation.Metadata.ContractVersion(Windows.Foundation.UniversalApiContract, 65536)]
/// [Windows.Foundation.Metadata.MarshalingBehavior(Windows.Foundation.Metadata.MarshalingType.Agile)]
/// [Windows.Foundation.Metadata.Threading(Windows.Foundation.Metadata.ThreadingModel.Both)]
/// [Windows.Foundation.Metadata.Activatable(65536, "Windows.Foundation.UniversalApiContract")]
/// [Windows.Foundation.Metadata.Activatable(Windows.Web.Http.IHttpClientFactory, 65536, "Windows.Foundation.UniversalApiContract")]
class HttpClient final : IClosable, IStringable
[Windows.Foundation.Metadata.Activatable(65536, typeof(Windows.Foundation.UniversalApiContract))]
[Windows.Foundation.Metadata.Activatable(typeof(Windows.Web.Http.IHttpClientFactory), 65536, typeof(Windows.Foundation.UniversalApiContract))]
[Windows.Foundation.Metadata.ContractVersion(typeof(Windows.Foundation.UniversalApiContract), 65536)]
[Windows.Foundation.Metadata.MarshalingBehavior(Windows.Foundation.Metadata.MarshalingType.Agile)]
[Windows.Foundation.Metadata.Threading(Windows.Foundation.Metadata.ThreadingModel.Both)]
public sealed class HttpClient : System.IDisposable, IStringable
[Windows.Foundation.Metadata.ContractVersion(typeof(Windows.Foundation.UniversalApiContract), 65536)]
[Windows.Foundation.Metadata.MarshalingBehavior(Windows.Foundation.Metadata.MarshalingType.Agile)]
[Windows.Foundation.Metadata.Threading(Windows.Foundation.Metadata.ThreadingModel.Both)]
[Windows.Foundation.Metadata.Activatable(65536, "Windows.Foundation.UniversalApiContract")]
[Windows.Foundation.Metadata.Activatable(typeof(Windows.Web.Http.IHttpClientFactory), 65536, "Windows.Foundation.UniversalApiContract")]
public sealed class HttpClient : System.IDisposable, IStringable
function HttpClient(filter)
Public NotInheritable Class HttpClient
Implements IDisposable, IStringable
Warisan
Object Platform::Object IInspectable HttpClient
Atribut
Penerapan

Persyaratan Windows

Rangkaian perangkat
Windows 10 (diperkenalkan dalam 10.0.10240.0)
API contract
Windows.Foundation.UniversalApiContract (diperkenalkan dalam v1.0)

Contoh

Contoh kode berikut menunjukkan cara MENDAPATKAN konten dari server Web sebagai string.

using System;

var uri = new System.Uri("http://www.bing.com");
using (var httpClient = new Windows.Web.Http.HttpClient())
{
    // Always catch network exceptions for async methods
    try
    {
        string result = await httpClient.GetStringAsync(uri);
    }
    catch (Exception ex)
    {
        // Details in ex.Message and ex.HResult.
    }
}
// Having exited the scope of the using statement, httpClient.Dispose() will be called
// automatically, thus freeing up system resources (the underlying socket, and memory
// used for the object).
#include "winrt/Windows.Foundation.h"
#include "winrt/Windows.Web.Http.h"
using namespace winrt;

Windows::Foundation::IAsyncAction HttpClientExample()
{
    Windows::Foundation::Uri uri{ L"http://www.bing.com" };
    Windows::Web::Http::HttpClient httpClient{};

    // Always catch network exceptions for async methods
    try
    {
        auto response{ co_await httpClient.GetStringAsync(uri) };
    }
    catch (winrt::hresult_error const& ex)
    {
        // Details in ex.message() and ex.to_abi().
    }

    // The destructor of HttpClient frees system resources
    // (the underlying socket, and memory used for the object).
}
using namespace Windows::Foundation;
using namespace Windows::Web::Http;

uri = ref new Uri("http://example.com/datalist.aspx");
httpClient = ref new HttpClient();

// Always catch network exceptions for async methods
try 
{
    httpClient->GetStringAsync(uri);
}
catch 
{
    // Details in ex.Message and ex.HResult.   
}

// In C++/CX, the system resources used by httpClient object are released 
// when the object falls out of scope or by the destructor (delete operator).

Kelas HttpClient sering digunakan oleh aplikasi untuk mengunduh lalu mengurai teks. Ada kemungkinan bahwa pengodean karakter yang ditentukan dalam header Content-Type oleh server HTTP tidak cocok dengan pengodean karakter isi respons HTTP (pengodean XML dalam dokumen XML, misalnya). Salah satu cara untuk menggunakan HttpClient dengan teks adalah dengan memanggil metode GetStringAsync dan meneruskan string yang dikembalikan ke pengurai teks. Namun, ini dapat mengakibatkan kesalahan jika Jenis Konten bukan jenis yang dapat diekspresikan sebagai string. Cara yang andal untuk menggunakan HttpClient dengan pengurai XML adalah dengan memanggil metode GetBufferAsync dan mengurai buffer untuk elemen "<?xml>". Kemudian gunakan pengodean karakter yang ditentukan ("<xmlversion="1.0" encoding="UTF-8"?>", misalnya) untuk mengurai isi respons HTTP. Untuk format teks lainnya, metode serupa dapat digunakan di mana aplikasi memindai bagian awal isi respons HTTP untuk menentukan pengodean karakter yang digunakan.

Keterangan

Instans kelas HttpClient bertindak sebagai sesi untuk mengirim permintaan HTTP dan menerima respons. Instans HttpClient adalah kumpulan pengaturan yang berlaku untuk semua permintaan yang dijalankan oleh instans tersebut. Selain itu, setiap instans HttpClient menggunakan kumpulan koneksinya sendiri, mengisolasi permintaannya dari permintaan yang dijalankan oleh instans HttpClient lainnya.

HttpClient juga bertindak sebagai kelas untuk digunakan dengan filter untuk klien HTTP yang lebih spesifik. Contohnya adalah HttpClientFilter yang menyediakan metode tambahan khusus untuk layanan jaringan sosial (metode GetFriends, misalnya).

Jika aplikasi yang menggunakan HttpClient dan kelas terkait di namespace Windows.Web.Http mengunduh data dalam jumlah besar (50 megabyte atau lebih), aplikasi harus melakukan streaming unduhan tersebut dan tidak menggunakan buffering default. Jika buffering default digunakan, penggunaan memori klien akan menjadi sangat besar, berpotensi mengakibatkan penurunan performa.

Untuk kode sampel di C# dan C++/WinRT yang menunjukkan cara menggunakan HttpClient untuk menyambungkan ke server HTTP, lihat HttpClient.

Untuk contoh kode di JavaScript dan HTML yang memperlihatkan cara menggunakan HttpClient untuk menyambungkan ke server HTTP, lihat Menyambungkan ke server HTTP menggunakan Windows.Web.Http.

Riwayat versi

Versi Windows Versi SDK Nilai ditambahkan
1903 18362 TryDeleteAsync
1903 18362 TryGetAsync(Uri)
1903 18362 TryGetAsync(Uri,HttpCompletionOption)
1903 18362 TryGetBufferAsync
1903 18362 CobaGetInputStreamAsync
1903 18362 CobaGetStringAsync
1903 18362 TryPostAsync
1903 18362 TryPutAsync
1903 18362 TrySendRequestAsync(HttpRequestMessage)
1903 18362 TrySendRequestAsync(HttpRequestMessage,HttpCompletionOption)

Konstruktor

HttpClient()

Menginisialisasi instans baru kelas HttpClient . Untuk panduan pemrograman untuk kelas HttpClient, dan contoh kode, lihat topik konseptual HttpClient .

HttpClient(IHttpFilter)

Menginisialisasi instans baru kelas HttpClient dengan filter tertentu untuk menangani pesan respons HTTP. Untuk panduan pemrograman untuk kelas HttpClient, dan contoh kode, lihat topik konseptual HttpClient .

Properti

DefaultPrivacyAnnotation

Mengirim permintaan HTTP dan menerima respons HTTP dari sumber daya yang diidentifikasi oleh URI. Untuk panduan pemrograman untuk kelas HttpClient , dan contoh kode, lihat topik konseptual HttpClient .

DefaultRequestHeaders

Mendapatkan kumpulan header yang harus dikirim dengan setiap permintaan. Untuk panduan pemrograman untuk kelas HttpClient, dan contoh kode, lihat topik konseptual HttpClient .

Metode

Close()

Menutup instans HttpClient dan merilis sumber daya yang dialokasikan. Untuk panduan pemrograman untuk kelas HttpClient, dan contoh kode, lihat topik konseptual HttpClient .

DeleteAsync(Uri)

Kirim permintaan DELETE ke Uri yang ditentukan sebagai operasi asinkron. Untuk panduan pemrograman untuk kelas HttpClient, dan contoh kode, lihat topik konseptual HttpClient .

Dispose()

Melakukan tugas yang ditentukan aplikasi yang terkait dengan membebaskan, melepaskan, atau mereset sumber daya yang tidak terkelola.

GetAsync(Uri)

Kirim permintaan GET ke Uri yang ditentukan sebagai operasi asinkron. Untuk panduan pemrograman untuk kelas HttpClient, dan contoh kode, lihat topik konseptual HttpClient .

GetAsync(Uri, HttpCompletionOption)

Kirim permintaan GET ke Uri yang ditentukan dengan opsi penyelesaian HTTP sebagai operasi asinkron. Untuk panduan pemrograman untuk kelas HttpClient, dan contoh kode, lihat topik konseptual HttpClient .

GetBufferAsync(Uri)

Kirim permintaan GET ke Uri yang ditentukan dan kembalikan isi respons sebagai buffer dalam operasi asinkron. Untuk panduan pemrograman untuk kelas HttpClient, dan contoh kode, lihat topik konseptual HttpClient .

GetInputStreamAsync(Uri)

Kirim permintaan GET ke Uri yang ditentukan dan kembalikan isi respons sebagai aliran dalam operasi asinkron. Untuk panduan pemrograman untuk kelas HttpClient, dan contoh kode, lihat topik konseptual HttpClient .

GetStringAsync(Uri)

Kirim permintaan GET ke Uri yang ditentukan dan kembalikan isi respons sebagai string dalam operasi asinkron. Untuk panduan pemrograman untuk kelas HttpClient, dan contoh kode, lihat topik konseptual HttpClient .

PostAsync(Uri, IHttpContent)

Kirim permintaan POST ke URI yang ditentukan sebagai operasi asinkron. Untuk panduan pemrograman untuk kelas HttpClient, dan contoh kode, lihat topik konseptual HttpClient .

PutAsync(Uri, IHttpContent)

Kirim permintaan PUT ke Uri yang ditentukan sebagai operasi asinkron. Untuk panduan pemrograman untuk kelas HttpClient, dan contoh kode, lihat topik konseptual HttpClient .

SendRequestAsync(HttpRequestMessage)

Kirim permintaan HTTP sebagai operasi asinkron. Untuk panduan pemrograman untuk kelas HttpClient, dan contoh kode, lihat topik konseptual HttpClient .

SendRequestAsync(HttpRequestMessage, HttpCompletionOption)

Kirim permintaan HTTP dengan opsi penyelesaian HTTP sebagai operasi asinkron. Untuk panduan pemrograman untuk kelas HttpClient, dan contoh kode, lihat topik konseptual HttpClient .

ToString()

Mengembalikan string yang mewakili objek HttpClient saat ini. Untuk panduan pemrograman untuk kelas HttpClient, dan contoh kode, lihat topik konseptual HttpClient .

TryDeleteAsync(Uri)

Kirim permintaan DELETE ke Uri yang ditentukan sebagai operasi asinkron. Untuk panduan pemrograman untuk kelas HttpClient, dan contoh kode, lihat topik konseptual HttpClient .

TryGetAsync(Uri)

Mengirim permintaan GET ke Uri yang ditentukan sebagai operasi asinkron. Untuk panduan pemrograman untuk kelas HttpClient, dan contoh kode, lihat topik konseptual HttpClient .

TryGetAsync(Uri, HttpCompletionOption)

Mengirim permintaan GET ke Uri yang ditentukan sebagai operasi asinkron. Untuk panduan pemrograman untuk kelas HttpClient, dan contoh kode, lihat topik konseptual HttpClient .

TryGetBufferAsync(Uri)

Kirim permintaan GET ke Uri yang ditentukan dan kembalikan isi respons sebagai HttpGetBufferResult dengan nilai IBuffer dalam operasi asinkron. Untuk panduan pemrograman untuk kelas HttpClient, dan contoh kode, lihat topik konseptual HttpClient .

TryGetInputStreamAsync(Uri)

Kirim permintaan GET ke Uri yang ditentukan dan kembalikan isi respons sebagai aliran dalam operasi asinkron. Untuk panduan pemrograman untuk kelas HttpClient, dan contoh kode, lihat topik konseptual HttpClient .

TryGetStringAsync(Uri)

Kirim permintaan GET ke Uri yang ditentukan dan kembalikan isi respons sebagai string dalam operasi asinkron. Untuk panduan pemrograman untuk kelas HttpClient, dan contoh kode, lihat topik konseptual HttpClient .

TryPostAsync(Uri, IHttpContent)

Mengirim permintaan POST ke Uri yang ditentukan sebagai operasi asinkron. Untuk panduan pemrograman untuk kelas HttpClient, dan contoh kode, lihat topik konseptual HttpClient .

TryPutAsync(Uri, IHttpContent)

Mengirim permintaan PUT ke Uri yang ditentukan sebagai operasi asinkron. Untuk panduan pemrograman untuk kelas HttpClient, dan contoh kode, lihat topik konseptual HttpClient .

TrySendRequestAsync(HttpRequestMessage)

Mengirim permintaan HTTP ke Uri yang ditentukan sebagai operasi asinkron. Untuk panduan pemrograman untuk kelas HttpClient, dan contoh kode, lihat topik konseptual HttpClient .

TrySendRequestAsync(HttpRequestMessage, HttpCompletionOption)

Mengirim permintaan HTTP dengan opsi penyelesaian ke Uri yang ditentukan sebagai operasi asinkron. Untuk panduan pemrograman untuk kelas HttpClient, dan contoh kode, lihat topik konseptual HttpClient .

Berlaku untuk

Lihat juga