public void InitializeWebService(HttpListenerContext _Context, string _MatchedPrefix, IBTracingServiceInterface _TracingService = null) { if (bInitialized) { return; } bInitialized = true; TracingService = _TracingService; var SplittedRawUrl = _Context.Request.RawUrl.Split(new char[] { '/' }, StringSplitOptions.RemoveEmptyEntries); var SplittedMatchedPrefix = _MatchedPrefix.Split(new char[] { '/' }, StringSplitOptions.RemoveEmptyEntries); if (SplittedRawUrl != null && SplittedMatchedPrefix != null && SplittedRawUrl.Length >= SplittedMatchedPrefix.Length) { for (int i = 1; i < SplittedMatchedPrefix.Length; i++) { if (SplittedMatchedPrefix[i] == "*") { RestfulUrlParameters[SplittedRawUrl[i - 1]] = SplittedRawUrl[i]; } } } var Params = BWebUtilities.AnalyzeURLParametersFromRawURL(_Context.Request.RawUrl); if (Params != null) { foreach (var Param in Params) { UrlParameters[Param.Item1] = Param.Item2; } } }
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; } }