Share via


HttpClient.GetBufferAsync(Uri) Method

Definition

Send a GET request to the specified Uri and return the response body as a buffer in an asynchronous operation. For programming guidance for the HttpClient class, and code examples, see the HttpClient conceptual topic.

public:
 virtual IAsyncOperationWithProgress<IBuffer ^, HttpProgress> ^ GetBufferAsync(Uri ^ uri) = GetBufferAsync;
/// [Windows.Foundation.Metadata.RemoteAsync]
IAsyncOperationWithProgress<IBuffer, HttpProgress> GetBufferAsync(Uri const& uri);
[Windows.Foundation.Metadata.RemoteAsync]
public IAsyncOperationWithProgress<IBuffer,HttpProgress> GetBufferAsync(System.Uri uri);
function getBufferAsync(uri)
Public Function GetBufferAsync (uri As Uri) As IAsyncOperationWithProgress(Of IBuffer, HttpProgress)

Parameters

uri
Uri Uri

The Uri the request is sent to.

Returns

The object representing the asynchronous operation.

Attributes

Remarks

This method is commonly called when downloading binary content such as small images and compressed files. Very large binary content should be downloaded as a stream with HttpClient.GetInputStreamAsync to prevent unneeded buffering.

This operation will not block. The returned IAsyncOperationWithProgress (of IBuffer and HttpProgress) completes after the whole response body is read.

The HttpClient class is often used by an app to download and then parse text. It is possible that the character encoding specified in the Content-Type header by an HTTP server does not match the character encoding of the HTTP response body (the XML encoding in an XML document, for example). One way to use HttpClient with text is to call the GetStringAsync method and pass the returned string to the text parser. However, this can result in errors if the Content-Type is not a type expressible as a string. A reliable way to use HttpClient with an XML parser is to call the GetBufferAsync method and parse the buffer for the "<?xml>" element. Then use the character encoding specified ("<xmlversion="1.0" encoding="UTF-8"?>", for example) to parse the HTTP response body. For other text formats, similar methods can be used where the app scans the initial part of the HTTP response body to determine the character encoding used.

Below are the exceptions that this function throws.

E_INVALIDARG

The uri parameter was a null reference (Nothing in Visual Basic).

Applies to

See also