Beispiel #1
0
 public HttpMessageResult GetHttpMessageResult()
 {
     if (_httpMessageResult == null)
     {
         _httpMessageResult = _getHttpMessageResult();
     }
     return(_httpMessageResult);
 }
Beispiel #2
0
 public HttpResult_v5(bool success, int statusCode, HttpMessageResult httpMessageResult, bool loadFromWeb = false, bool loadFromCache = false)
 {
     _success           = success;
     _statusCode        = statusCode;
     _httpMessageResult = httpMessageResult;
     _loadFromWeb       = loadFromWeb;
     _loadFromCache     = loadFromCache;
 }
Beispiel #3
0
            //private async Task<bool> Load()
            private async Task Load()
            {
                _urlCachePath = _httpCacheManager._urlCache.GetUrlPathResult(_request, _request.CacheSubDirectory);
                string cacheFile = _urlCachePath.Path;

                if (_request.ReloadFromWeb || !zFile.Exists(cacheFile))
                {
                    // cache file dont exists, create 2 cache files : file with content response, file with request response
                    //TraceLevel.WriteLine(1, $"Load from web \"{_httpRequest.Url}\" ({_httpRequest.Method})");
                    //Http_v3 http2 = CreateHttp(httpRequest);
                    //http2.LoadToFile(urlPath);
                    //http2.SaveRequest(zpath.PathSetExtension(urlPath, ".request.json"));
                    using (Http_v5 http = new Http_v5(_request, _httpCacheManager._httpManager))
                    {
                        zfile.CreateFileDirectory(cacheFile);
                        HttpResult_v5 result = await http.LoadToFile(cacheFile);

                        //if (result.Success)
                        //{
                        _httpMessageResult           = http.GetHttpMessageResult();
                        _httpMessageResult.CacheFile = _urlCachePath.SubPath;
                        _httpMessageResult.zSave(zpath.PathSetExtension(cacheFile, ".request.json"), jsonIndent: true);
                        _success     = result.Success;
                        _loadFromWeb = true;
                        //return true;
                        //}
                        //else
                        //    return false;
                    }
                    //trace = true;
                }
                else
                {
                    // cache file exists, load request from cache file
                    _loadFromCache = true;
                    TraceLevel.WriteLine(1, "Load from cache \"{0}\"", _urlCachePath.Path);
                    string requestFile = zpath.PathSetExtension(cacheFile, ".request.json");
                    if (!zFile.Exists(requestFile))
                    {
                        throw new PBException($"request file not found \"{requestFile}\"");
                    }
                    _httpMessageResult = zMongo.ReadFileAs <HttpMessageResult>(requestFile);
                    _success           = _httpMessageResult.Response.StatusCode == 200;
                    //return true;
                }
            }