示例#1
0
 /// <summary>
 /// 封装HttpOption的Send扩展方法发送HTTP请求,
 /// 如果遇到WebException异常,就转换成RemoteWebException异常
 /// </summary>
 /// <typeparam name="T"></typeparam>
 /// <param name="option"></param>
 /// <returns></returns>
 public static T GetResult <T>(this HttpOption option)
 {
     try {
         return(option.Send <T>());
     }
     catch (WebException ex) {
         // 返回一个容易获取异常消息的异常类型
         throw new RemoteWebException(ex);
     }
 }
示例#2
0
 /// <summary>
 /// 封装HttpOption的Send扩展方法发送HTTP请求,并提供失败重试功能。
 /// 如果遇到WebException异常,就转换成RemoteWebException异常
 /// </summary>
 /// <param name="option">HttpOption实例,用于包含HTTP请求的发送参数</param>
 /// <param name="retry">提供一个Retry实例,用于指示如何执行重试。如果此参数为NULL则不启用重试</param>
 /// <returns></returns>
 public static T GetResult <T>(this HttpOption option, Retry retry = null)
 {
     try {
         if (retry == null)
         {
             return(option.Send <T>());
         }
         else
         {
             return(retry.Run(option.Send <T>));
         }
     }
     catch (WebException ex) {
         // 返回一个容易获取异常消息的异常类型
         throw new RemoteWebException(ex, option.Url);
     }
 }
示例#3
0
        /// <summary>
        /// 封装HttpOption的Send扩展方法发送HTTP请求,并提供失败重试功能。
        /// 如果遇到WebException异常,就转换成RemoteWebException异常
        /// </summary>
        /// <param name="option">HttpOption实例,用于包含HTTP请求的发送参数</param>
        /// <param name="retry">提供一个Retry实例,用于指示如何执行重试。如果此参数为NULL将采用默认重试规则</param>
        /// <returns></returns>
        public static T GetResult <T>(this HttpOption option, Retry retry)
        {
            if (retry == null)
            {
                retry = GetDefaultRetry();
            }

            try {
                return(retry.Run <T>(() => {
                    return option.Send <T>();
                }));
            }
            catch (WebException ex) {
                // 返回一个容易获取异常消息的异常类型
                throw new RemoteWebException(ex);
            }
        }