AsyncDownloadPolicy.ConfigureHttpClient Event
Allows you to customize settings of a standard HttpClient
component that DevExpress components use to download data (the default proxy, base address, cache size, and more).
Namespace: DevExpress.Data
Assembly: DevExpress.Data.v24.1.dll
NuGet Package: DevExpress.Data
Declaration
public static event AsyncDownloadPolicy.WeakEventHandler<AsyncDownloadPolicy.ConfigureHttpClientEventArgs> ConfigureHttpClient
Event Data
The ConfigureHttpClient event's data class is AsyncDownloadPolicy.ConfigureHttpClientEventArgs. The following properties provide information specific to this event:
Property | Description |
---|---|
Client | Gets an HttpClient component that DevExpress components use to download data. |
ValueType | Gets a value that identifies the group of controls to which an individual control (that initiated the download) belongs. Inherited from AsyncDownloadPolicy.AsyncDownloaderEventArgs. |
Remarks
For example, the default buffer size of an HttpClient
is 2GB. WinForms PictureEdit controls reduce this size to 4096 bytes. If you attempt to download a larger image, you will get the “System.Net.Http.HttpRequestException: Cannot write more bytes to the buffer than the configured maximum buffer size: 4194304” exception. The following sample illustrates how to raise this limit to 16MB:
async void OnFormLoad(object sender, EventArgs e) {
// Downloads a large image.
await pictureEdit1.LoadAsync("...");
}
void OnConfigureHttpClient(object sender, ConfigureHttpClientEventArgs e) {
e.Client.MaxResponseContentBufferSize = 1024*1024*16;
}
You can also use DefaultResponseContentBufferSizeForHttpClient and DefaultBufferSizeForContentCopy settings to modify values for the static AsyncDownloadPolicy class constants and specify a global limit that can be changed within the ConfigureHttpClient
event for individual UI controls.
DevExpress.Data.AsyncDownloadPolicy.DefaultResponseContentBufferSizeForHttpClient = 1024 * 1024 * 4; // 4MB
DevExpress.Data.AsyncDownloadPolicy.DefaulBufferSizeForContentCopy = 1024 * 16; // 16KB
Read the following topic for detailed information and examples: Suppress Control Requests to Download Data from External URLs.