private static string GetfileName(string url) { if (url.EndsWith("/")) { url += ".default"; } return(ConfigFileManager.GetConfig <NetConfig>().TempPath + url.Replace("http://", "")); }
/// <summary> /// 直接返回流,如果文件存在且配置为不检查更新则会返回文件流 /// </summary> /// <returns></returns> public Stream GetResponseStream() { if (!ConfigFileManager.GetConfig <NetConfig>().CheckUpdate&& File.Exists(LocalFileName)) { try { return(GetFileStream(LocalFileName)); } catch (Exception) { } } return(GetResponse().GetResponseStream()); }
//public void AddRange(string rangeSpecifier, long range) //{ // _webRequest.AddRange(rangeSpecifier, range); //} public HttpWebResponse GetResponse() { if (ConfigFileManager.GetConfig <NetConfig>().UseCache&& _webRequest.Method.Equals("GET", StringComparison.OrdinalIgnoreCase)) { global::System.IO.FileInfo fileInfo = new FileInfo(LocalFileName); //lockHttpFileHelper.FileInfo; if (fileInfo.Exists && fileInfo.Length > 0) { _webRequest.IfModifiedSince = fileInfo.LastWriteTime; } global::System.Net.HttpWebResponse response; try { response = (global::System.Net.HttpWebResponse)_webRequest.GetResponse(); } catch (WebException exception) { response = (HttpWebResponse)exception.Response; if (response.StatusCode != HttpStatusCode.NotModified) { response.Close(); throw; } } if (response.StatusCode == HttpStatusCode.NotModified) //未改变 { _isFromCacheFieldInfo.SetValue(response, true); Stream fileStream = GetFileStream(fileInfo.FullName); _responseStreamPropertyInfo.SetValue(response, fileStream, null); } else { if (!fileInfo.Directory.Exists) { fileInfo.Directory.Create(); } HttpFileStream httpStream = new HttpFileStream(response, fileInfo); _responseStreamPropertyInfo.SetValue(response, httpStream, null); } _response = response; return(response); } _response = _webRequest.GetResponse() as HttpWebResponse; return(_response); }