Skip to content

Instantly share code, notes, and snippets.

@trsneed
Created October 22, 2013 18:46
Show Gist options
  • Save trsneed/7105931 to your computer and use it in GitHub Desktop.
Save trsneed/7105931 to your computer and use it in GitHub Desktop.
Get HttpWebResponse asynchronously for windows phone 8, or anything really, but I needed it for windows phone 8
public static Task<HttpWebResponse> GetResponseAsync(this HttpWebRequest request)
{
var taskComplete = new TaskCompletionSource<HttpWebResponse>();
request.BeginGetResponse(asyncResponse =>
{
try
{
HttpWebRequest responseRequest = (HttpWebRequest)asyncResponse.AsyncState;
HttpWebResponse someResponse = (HttpWebResponse)responseRequest.EndGetResponse(asyncResponse);
taskComplete.TrySetResult(someResponse);
}
catch (WebException e)
{
HttpWebResponse failedResponse = (HttpWebResponse)e.Response;
taskComplete.TrySetResult(failedResponse);
}
}, request);
return taskComplete.Task;
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment