HttpClient.GetStringAsync(Uri) Method


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

 virtual IAsyncOperationWithProgress<Platform::String ^, HttpProgress> ^ GetStringAsync(Uri ^ uri) = GetStringAsync;
/// [Windows.Foundation.Metadata.RemoteAsync]
IAsyncOperationWithProgress<winrt::hstring, HttpProgress> GetStringAsync(Uri const& uri);
public IAsyncOperationWithProgress<string,HttpProgress> GetStringAsync(System.Uri uri);
function getStringAsync(uri)
Public Function GetStringAsync (uri As Uri) As IAsyncOperationWithProgress(Of String, HttpProgress)


Uri Uri

The Uri the request is sent to.


The object representing the asynchronous operation.



This operation will not block. The returned IAsyncOperationWithProgress (of string 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.


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

Exception Handling

You must write code to handle exceptions when you call this method. Exceptions can result from parameter validation errors, name resolutions failures, and network errors. Exceptions from network errors (loss of connectivity, connection failures, and HTTP server failures, for example) can happen at any time. These errors result in exceptions being thrown. If not handled by your app, an exception can cause your entire app to be terminated by the runtime. For more information on how to handle exceptions, see Handling exceptions in network apps.

Applies to

See also