public static IAsyncResult GetImageryMetadataAsync(ImageryMetadataRequest imageryRequest, Action <Response> clientCallback, Action <Exception> clientErrorCallback) { HttpWebRequest httpWebRequest = WebRequest.Create(imageryRequest.GetRequestUrl()) as HttpWebRequest; InternalAsyncRequestState state = new InternalAsyncRequestState { Request = httpWebRequest, ResponseCallBack = clientCallback, ErrorCallBack = clientErrorCallback }; return(httpWebRequest.BeginGetResponse(RespCallback, state)); }
private static void RespCallback(IAsyncResult asynchronousResult) { InternalAsyncRequestState internalAsyncRequestState = (InternalAsyncRequestState)asynchronousResult.AsyncState; try { Response response = ReadResponse((HttpWebResponse)internalAsyncRequestState.Request.EndGetResponse(asynchronousResult)); if (response != null) { internalAsyncRequestState.ResponseCallBack(response); } else { internalAsyncRequestState.ErrorCallBack(new Exception("Error parsing Bing Maps Response")); } } catch (WebException obj) { internalAsyncRequestState.ErrorCallBack(obj); } }