private static void AttempRetryOnException(String logPrefix, Request request, VolleyError exception)
        {
            IRetryPolicy retryPolicy = request.GetRetryPolicy();
            int oldTimeout = request.GetTimeoutMs();

            try
            {
                retryPolicy.Retry(exception);
            }
            catch (VolleyError e)
            {
                request.AddMarker(String.Format("{0}-timeout-giveup[timeout={1}]", logPrefix, oldTimeout));
                throw e;
            }
            request.AddMarker(String.Format("{0}-retry [timeout-{1}]", logPrefix, oldTimeout));
        }
 /// <summary>
 /// ��������
 /// </summary>
 public HttpWebRequest CreateHttpRequest(Request request)
 {
     var webrequest = (HttpWebRequest)WebRequest.Create(request.Url);
     webrequest.Accept = Accept;
     webrequest.UserAgent = UserAgent;
     webrequest.Timeout = request.GetTimeoutMs();
     if (Cookie != null)
     {
         webrequest.CookieContainer = Cookie;
     }
     switch (request.Methods)
     {
         case Request.Method.DEPRECATED_GET_OR_POST:
             {
                 if (request.GetPostBody() != null)
                 {
                     webrequest.Method = HttpMethod.POST;
                     webrequest.ContentType = request.GetPostBodyContentType();
                     WriteData(webrequest, request.GetPostBody());
                     return webrequest;
                 }
                 else
                 {
                     return webrequest;
                 }
             }
         case Request.Method.GET:
             {
                 return webrequest;
             }
         case Request.Method.DELETE:
             {
                 webrequest.Method = HttpMethod.DELETE;
                 return webrequest;
             }
         case Request.Method.POST:
             {
                 webrequest.ContentType = request.GetBodyContentType();
                 webrequest.Method = HttpMethod.POST;
                 WriteData(webrequest, request.GetPostBody());
                 return webrequest;
             }
         case Request.Method.PUT:
             {
                 webrequest.ContentType = request.GetBodyContentType();
                 webrequest.Method = HttpMethod.PUT;
                 WriteData(webrequest, request.GetPostBody());
                 return webrequest;
             }
         case Request.Method.HEAD:
             {
                 webrequest.Method = HttpMethod.HEAD;
                 return webrequest;
             }
         case Request.Method.OPTIONS:
             {
                 webrequest.Method = HttpMethod.OPTIONS;
                 return webrequest;
             }
         case Request.Method.TRACE:
             {
                 webrequest.Method = HttpMethod.TRACE;
                 return webrequest;
             }
         case Request.Method.PATCH:
             {
                 webrequest.Method = HttpMethod.PATCH;
                 webrequest.ContentType = request.GetPostBodyContentType();
                 WriteData(webrequest, request.GetPostBody());
                 return webrequest;
             }
         default:
             {
                 throw new InvalidOperationException("δ֪����ʽ");
             }
     }
 }