Ejemplo n.º 1
0
 public HttpRequestMessage(System.Net.Http.HttpRequestMessage request, string requestContent = null)
 {
     Uri     = request.RequestUri;
     Method  = request.Method.ToString();
     Headers = HttpTools.GetRequestHeaders(request);
     Content = requestContent;
 }
Ejemplo n.º 2
0
        //private HttpResult<TData> Load<TData>(HttpRequest httpRequest, Func<Http_v2, TData> loadData, string subDirectory = null)
        //private async Task Load()
        //{
        //    //bool success = false;
        //    //bool loadFromWeb = false;
        //    //bool loadFromCache = false;
        //    //bool trace = false;
        //    //Http_v3 http = null;
        //    //TData data = default(TData);
        //    //try
        //    //{
        //    //if (_httpManager.UrlCache != null)
        //    //{
        //    //    //UrlCachePathResult urlCachePath
        //    //    _urlCachePath = _httpManager.UrlCache.GetUrlPathResult(_httpRequest, _httpRequest.CacheSubDirectory);
        //    //    string urlPath = _urlCachePath.Path;
        //    //    if (_httpRequest.ReloadFromWeb || !zFile.Exists(urlPath))
        //    //    {
        //    //        // 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"));
        //    //        LoadToFile(urlPath);
        //    //        SaveRequest(zpath.PathSetExtension(urlPath, ".request.json"));
        //    //        _loadFromWeb = true;
        //    //        //trace = true;
        //    //    }
        //    //    else
        //    //    {
        //    //        // cache file exists, load request from cache file
        //    //        _loadFromCache = true;
        //    //        TraceLevel.WriteLine(1, "Load from cache \"{0}\"", _urlCachePath.Path);
        //    //        //http = CreateHttp(httpRequest);
        //    //    }
        //    //    //httpRequest.UrlCachePath = urlCachePath;
        //    //}
        //    //else
        //    //{
        //        //_loadFromWeb = true;
        //        TraceLevel.WriteLine(1, "Load from web \"{0}\" ({1})", _httpRequest.Url, _httpRequest.Method);
        //        _httpManager._InitLoadFromWeb();
        //        //http = CreateHttp(httpRequest);
        //        await SendRequest();
        //    //}

        //        //data = loadData(http);
        //        //_success = true;
        //    //}
        //    //catch (Exception ex)
        //    //{
        //    //    if (_httpManager.TraceException)
        //    //        Trace.WriteLine($"{DateTime.Now:dd/MM/yyyy HH:mm:ss} error : loading \"{(_urlCachePath != null ? _urlCachePath.Path : _httpRequest.Url)}\" ({_httpRequest.Method}) {ex.Message}");
        //    //    else
        //    //        throw;
        //    //}
        //    //return new HttpResult<TData> { Success = success, LoadFromWeb = loadFromWeb, LoadFromCache = loadFromCache, Http = http, Data = data };
        //}

        private void CreateHttpRequestMessage()
        {
            _httpRequest = new System.Net.Http.HttpRequestMessage(HttpTools.GetHttpMethod(_request.Method), _request.Url);
            if (_request.Content != null)
            {
                _httpRequest.Content = _request.Content.GetHttpContent();
            }
        }
Ejemplo n.º 3
0
 public HttpResponseMessage(System.Net.Http.HttpResponseMessage response)
 {
     StatusCode    = (int)response.StatusCode;
     StatusMessage = response.ReasonPhrase;
     Version       = response.Version.ToString();
     Headers       = HttpTools.GetResponseHeaders(response);
     CharSet       = response.Content.Headers.ContentType?.CharSet;
     MediaType     = response.Content.Headers.ContentType?.MediaType;
 }
Ejemplo n.º 4
0
        public old.HttpRequestParameters_v1 GetHttpRequestParameters()
        {
            old.HttpRequestParameters_v1 requestParameters = new old.HttpRequestParameters_v1();
            requestParameters.method = HttpTools.GetHttpRequestMethod(method);

            foreach (HttpArchiveHeader header in headers)
            {
                switch (header.name.ToLower())
                {
                case "accept":
                    requestParameters.accept = header.value;
                    break;

                case "user-agent":
                    requestParameters.userAgent = header.value;
                    break;

                case "referer":
                    requestParameters.referer = header.value;
                    break;

                case "host":
                case "connection":
                case "if-modified-since":
                case "accept-encoding":
                    break;

                //case "cookie":
                //    break;
                //case "host":
                //case "accept-encoding":
                //case "accept-language":
                //case "connection":
                //case "if-modified-since":
                //case "cache-control":
                default:
                    requestParameters.headers.Add(header.name, header.value);
                    break;
                }
            }

            Uri uri = new Uri(url);

            foreach (HttpArchiveCookie cookie in cookies)
            {
                Cookie cookie2 = cookie.GetCookie(uri.DnsSafeHost);
                requestParameters.cookies.Add(cookie2);
            }

            //queryString
            //postData
            return(requestParameters);
        }
Ejemplo n.º 5
0
Archivo: Http.cs Proyecto: 24/source_04
        private void GetWebRequestHeaderValues()
        {
            if (_webResponse is HttpWebResponse)
            {
                HttpWebResponse httpResponse = (HttpWebResponse)_webResponse;
                _resultCharset = httpResponse.CharacterSet;
                if (_resultCharset != null)
                {
                    _resultCharset = _resultCharset.ToLower();
                }

                string   s  = httpResponse.ContentType.ToLower();
                string[] s2 = zsplit.Split(s, ';', true);
                if (s2.Length > 0)
                {
                    _resultContentType = s2[0];
                }

                _resultContentLength = httpResponse.ContentLength;
            }
            else if (_webResponse is FileWebResponse)
            {
                //Uri uri = new Uri(_httpRequest.Url);
                //string ext = zPath.GetExtension(uri.LocalPath).ToLower();
                //switch (ext)
                //{
                //    case ".xml":
                //        _resultContentType = "text/xml";
                //        break;
                //    case ".htm":
                //    case ".html":
                //    case ".asp":
                //    case ".php":
                //        _resultContentType = "text/html";
                //        break;
                //    case ".txt":
                //        _resultContentType = "text/txt";
                //        break;
                //    default:
                //        if (ext.Length > 1)
                //            _resultContentType = "/" + ext.Substring(1);
                //        break;
                //}
                // modif le 09/11/2015 ne gère plus les extensions inconnues ("/unknow_ext")
                _resultContentType = HttpTools.GetContentTypeFromFileExtension(zPath.GetExtension(new Uri(_httpRequest.Url).LocalPath));
            }
        }
Ejemplo n.º 6
0
Archivo: Http.cs Proyecto: 24/source_04
 //public void Load()
 public void LoadAsText()
 {
     try
     {
         if (__trace)
         {
             pb.Trace.WriteLine("Http.LoadAsText()");
         }
         Open();
         if (_resultContentType != null && (_resultContentType.StartsWith("text") || _resultContentType == "application/json"))
         {
             _LoadText();
             //if (_exportResult && _exportDirectory != null)
             //    _exportFile = GetNewHttpFileName(_exportDirectory, GetFileExtensionFromContentType(_resultContentType));
             //else if (_exportFile != null)
             //{
             //    if (zPath.GetExtension(_exportFile) == "")
             //        _exportFile = zpath.PathSetExtension(_exportFile, GetFileExtensionFromContentType(_resultContentType));
             //}
             if (_exportFile != null)
             {
                 if (_setExportFileExtension)
                 {
                     _exportFile = zpath.PathSetExtension(_exportFile, HttpTools.GetFileExtensionFromContentType(_resultContentType));
                 }
                 zfile.WriteFile(_exportFile, _resultText);
                 if (_exportRequest)
                 {
                     ExportRequest(_exportFile);
                 }
             }
         }
     }
     finally
     {
         Close();
     }
 }
Ejemplo n.º 7
0
        //public static string UrlToFileName(string url, UrlFileNameType type, string ext = null, HttpRequestParameters requestParameters = null)
        //{
        //    string httpRequestContent = null;
        //    if (requestParameters != null)
        //        httpRequestContent = requestParameters.content;
        //    return UrlToFileName(url, type, ext, httpRequestContent);
        //}

        //public static string UrlToFileName(HttpRequest request, UrlFileNameType type, string ext = null)
        //{
        //    return UrlToFileName(request.Url, type, ext, request.Content);
        //}

        public static string UrlToFileName(string url, UrlFileNameType type, string ext = null, string httpRequestContent = null)
        {
            // source from Http.UrlToFileName()

            // url                                   : "http://www.site.com/toto/tata/index.php?name=search&page=2"
            // uri.Host                              : "www.site.com"
            // uri.Authority                         : "www.site.com"
            // uri.DnsSafeHost                       : "www.site.com"
            // uri.AbsoluteUri                       : "http://www.site.com/toto/tata/index.php?name=search&page=2"
            // uri.PathAndQuery                      : "/toto/tata/index.php?name=search&page=2"
            // uri.AbsolutePath                      : "/toto/tata/index.php"
            // uri.LocalPath                         : "/toto/tata/index.php"
            // uri.Query                             : "?name=search&page=2"
            // uri.Segments                          : "/, toto/, tata/, index.php"

            // url                                   : "http://www.site.com/toto/tata/"
            // uri.Host                              : "www.site.com"
            // uri.Authority                         : "www.site.com"
            // uri.DnsSafeHost                       : "www.site.com"
            // uri.AbsoluteUri                       : "http://www.site.com/toto/tata/"
            // uri.PathAndQuery                      : "/toto/tata/"
            // uri.AbsolutePath                      : "/toto/tata/"
            // uri.LocalPath                         : "/toto/tata/"
            // uri.Query                             : ""
            // uri.Segments                          : "/, toto/, tata/"

            // uri.GetComponents(UriComponents.UserInfo)
            // uri.GetLeftPart(UriPartial.Scheme)

            if (url == null)
            {
                return(null);
            }

            string file = "";
            //bool queryOrContent = false;
            Uri uri = new Uri(url);

            if ((type & UrlFileNameType.Host) == UrlFileNameType.Host)
            {
                file = uri.Host;
            }

            if ((type & UrlFileNameType.Path) == UrlFileNameType.Path)
            {
                if (file != "")
                {
                    file += "_";
                }
                //file += HttpUtility.UrlDecode(uri.AbsolutePath);
                string urlPath = HttpUtility.UrlDecode(uri.AbsolutePath);
                //urlExt = zPath.GetExtension(urlPath);
                if (urlPath.StartsWith("/"))
                {
                    urlPath = urlPath.Substring(1);
                }
                if (urlPath.EndsWith("/"))
                {
                    urlPath = urlPath.Substring(0, urlPath.Length - 1);
                }

                if ((type & UrlFileNameType.Ext) != UrlFileNameType.Ext)
                {
                    // attention with zpath.PathSetExt() / => \
                    urlPath = zpath.PathSetExtension(urlPath, null);
                }
                file += urlPath;
            }
            else if ((type & UrlFileNameType.FileName) == UrlFileNameType.FileName)
            {
                if (file != "")
                {
                    file += "_";
                }
                //file += HttpUtility.UrlDecode(uri.Segments[uri.Segments.Length - 1]);
                //if (file.EndsWith("/"))
                //    file = file.Substring(0, file.Length - 1);
                string urlFilename = HttpUtility.UrlDecode(uri.Segments[uri.Segments.Length - 1]);
                //urlExt = zPath.GetExtension(urlFilename);
                if (urlFilename.EndsWith("/"))
                {
                    urlFilename = urlFilename.Substring(0, urlFilename.Length - 1);
                }
                if ((type & UrlFileNameType.Ext) != UrlFileNameType.Ext)
                {
                    // attention with zpath.PathSetExt() / => \
                    urlFilename = zpath.PathSetExtension(urlFilename, null);
                }
                file += urlFilename;
            }

            if ((type & UrlFileNameType.Query) == UrlFileNameType.Query)
            {
                if (file != "")
                {
                    file += "_";
                }
                file += HttpUtility.UrlDecode(uri.Query);
                //queryOrContent = true;
            }

            if ((type & UrlFileNameType.Content) == UrlFileNameType.Content)
            {
                //if (requestParameters != null && requestParameters.content != null)
                if (httpRequestContent != null)
                {
                    if (file != "")
                    {
                        file += "_";
                    }
                    //file += requestParameters.content;
                    file += httpRequestContent;
                }
                //queryOrContent = true;
            }

            //file = __rgBadFilenameChars.Replace(file, "_");
            file = zfile.ReplaceBadFilenameChars(file, "_");
            //file = file.Replace('/', '_');
            //file = file.Replace('?', '_');
            //file = file.Replace('%', '_');
            //file = file.Replace('&', '_');
            file = file.Trim('_');
            file = __rgMultiUnderline.Replace(file, "_");
            //if (ext != null)
            //    file = zpath.PathSetExt(file, ext);
            //else if (!zPath.HasExtension(file))
            //    file = zpath.PathSetExt(file, ".html");

            if (file == "")
            {
                throw new PBException("error can't generate filename from url \"{0}\" of type {1}", url, type);
            }

            if (ext == null)
            {
                ext = zPath.GetExtension(uri.AbsolutePath);
                // modif le 09/11/2015 appel Http.GetContentTypeFromFileExtension() pour vérifier le type d'extension
                if (HttpTools.GetContentTypeFromFileExtension(ext) == null)
                {
                    file += ext;
                    ext   = "";
                }
                ////////////// annulation modif le 24/07/2016 ajout else pour ne pas ajouter ".html" si Http.GetContentTypeFromFileExtension(ext) = null
                if (ext == "")
                {
                    ext = ".html";
                }
                //else if (!queryOrContent)
                //    ext = null;
            }

            if (ext != null)
            {
                //if (!queryOrContent)
                //    file = zpath.PathSetExt(file, ext);
                //else
                //    file += ext;
                if (!file.EndsWith(ext))
                {
                    file += ext;
                }
            }
            if (file.Length > __maxFilenameLength)
            {
                ext = zPath.GetExtension(file);
                string filename = zPath.GetFileNameWithoutExtension(file);
                int    i        = filename.LastIndexOf('.');
                if (i != -1 && filename.Length - i < 10)
                {
                    ext      = filename.Substring(i) + ext;
                    filename = filename.Substring(0, i);
                }
                file = filename.Substring(0, filename.Length - (file.Length - __maxFilenameLength)) + ext;
            }

            return(file);
        }