/// <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); } }
/// <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); } }
/// <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); } }