private void ExecuteGravatarMethodAsync(GravatarServiceRequest request, GravatarCallBack callback, object state)
        {
            var webRequest = (HttpWebRequest)WebRequest.Create(String.Format(GravatarApiUrl, HashEmailAddress(Email)));

            webRequest.Method      = "POST";
            webRequest.ContentType = "text/xml";

            webRequest.BeginGetRequestStream(OnGetRequestStream, new GravatarRequestState {
                WebRequest      = webRequest,
                GravatarRequest = request,
                UserState       = state,
                CallBack        = callback
            });
        }
        private GravatarServiceResponse ExecuteGravatarMethod(GravatarServiceRequest request)
        {
            var webRequest  = (HttpWebRequest)WebRequest.Create(String.Format(GravatarApiUrl, HashEmailAddress(Email)));
            var requestData = Encoding.UTF8.GetBytes(request.ToString());

            webRequest.Method        = "POST";
            webRequest.ContentType   = "text/xml";
            webRequest.ContentLength = requestData.Length;

            try {
                using (var requestStream = webRequest.GetRequestStream()) {
                    requestStream.Write(requestData, 0, requestData.Length);
                    requestStream.Close();
                }

                var webResponse = (HttpWebResponse)webRequest.GetResponse();
                return(new GravatarServiceResponse(webResponse, request.MethodName));
            } catch (Exception ex) {
                return(new GravatarServiceResponse(ex));
            }
        }
        private GravatarServiceResponse ExecuteGravatarMethod(GravatarServiceRequest request)
        {
            var webRequest = (HttpWebRequest) WebRequest.Create(String.Format(GravatarApiUrl, HashEmailAddress(Email)));
            var requestData = Encoding.UTF8.GetBytes(request.ToString());

            webRequest.Method = "POST";
            webRequest.ContentType = "text/xml";
            webRequest.ContentLength = requestData.Length;

            try {
                using (var requestStream = webRequest.GetRequestStream()) {
                    requestStream.Write(requestData, 0, requestData.Length);
                    requestStream.Close();
                }

                var webResponse = (HttpWebResponse)webRequest.GetResponse();
                return new GravatarServiceResponse(webResponse, request.MethodName);
            } catch (Exception ex) {
                return new GravatarServiceResponse(ex);
            }
        }
        private void ExecuteGravatarMethodAsync(GravatarServiceRequest request, GravatarCallBack callback, object state)
        {
            var webRequest = (HttpWebRequest) WebRequest.Create(String.Format(GravatarApiUrl, HashEmailAddress(Email)));

            webRequest.Method = "POST";
            webRequest.ContentType = "text/xml";

            webRequest.BeginGetRequestStream(OnGetRequestStream,  new GravatarRequestState {
                WebRequest = webRequest,
                GravatarRequest = request,
                UserState = state,
                CallBack = callback
            });
        }