using System; using System.Collections.Generic; using System.Text; namespace COSXML.Model.Object { /// /// 实现 Object 跨域访问配置的预请求 /// /// public sealed class OptionObjectResult : CosResult { /// /// 跨域访问的请求来源域名 /// public string accessControlAllowOrigin; /// /// OPTIONS 请求得到结果的有效期 /// public long accessControlMaxAge; /// /// 跨域访问的允许请求头部 /// public List accessControlAllowHeaders; /// /// 跨域访问的允许请求 HTTP 方法 /// public List accessControlAllowMethods; /// /// 跨域访问的允许请求自定义头部 /// public List accessControlAllowExposeHeaders; internal override void InternalParseResponseHeaders() { List values; this.responseHeaders.TryGetValue("Access-Control-Allow-Origin", out values); if (values != null && values.Count > 0) { accessControlAllowOrigin = values[0]; } this.responseHeaders.TryGetValue("Access-Control-Max-Age", out values); if (values != null && values.Count > 0) { long.TryParse(values[0], out accessControlMaxAge); } this.responseHeaders.TryGetValue("Access-Control-Allow-Methods", out values); if (values != null && values.Count > 0) { accessControlAllowMethods = new List(values[0].Split(',')); } this.responseHeaders.TryGetValue("Access-Control-Allow-Headers", out values); if (values != null && values.Count > 0) { accessControlAllowHeaders = new List(values[0].Split(',')); } this.responseHeaders.TryGetValue("Access-Control-Expose-Headers", out values); if (values != null && values.Count > 0) { accessControlAllowExposeHeaders = new List(values[0].Split(',')); } } public override string GetResultInfo() { return base.GetResultInfo() + "\n" + accessControlAllowOrigin; } } }