public static WebResponse BetterEndGetResponse(this WebRequest request, IAsyncResult asyncResult) { try { return request.EndGetResponse(asyncResult); } catch (WebException wex) { if (wex.Response != null) { return wex.Response; } throw; } }