Beispiel #1
0
        private static void AnalyzeResponse(
            HttpWebResponse _Response,
            out bool _bHttpRequestSuccess,
            out int _HttpRequestResponseCode,
            out string _HttpRequestResponseContentType,
            out BStringOrStream _HttpRequestResponseContent,
            out Dictionary <string, IEnumerable <string> > _HttpRequestResponseHeaders,
            Action <string> _ErrorMessageAction)
        {
            _bHttpRequestSuccess            = false;
            _HttpRequestResponseCode        = BWebResponse.Error_InternalError_Code;
            _HttpRequestResponseContentType = "";
            _HttpRequestResponseContent     = null;
            _HttpRequestResponseHeaders     = new Dictionary <string, IEnumerable <string> >();

            try
            {
                _HttpRequestResponseCode = (int)_Response.StatusCode;

                BWebUtilities.InjectHeadersIntoDictionary(_Response.Headers, _HttpRequestResponseHeaders);

                _HttpRequestResponseContentType = _Response.ContentType;

                using (var ResStream = _Response.GetResponseStream())
                {
                    var CopyStream = new BMemoryTributary(BUtility.ReadToEnd(ResStream));

                    _HttpRequestResponseContent = new BStringOrStream(CopyStream, CopyStream.Length, () => { try { CopyStream?.Dispose(); } catch { } });
                }

                _bHttpRequestSuccess = true;
            }
            catch (Exception e)
            {
                _ErrorMessageAction?.Invoke("Error: RequestRedirection-AnalyzeResponse: " + e.Message + ", Trace: " + e.StackTrace);
                _bHttpRequestSuccess = false;
            }
        }