示例#1
0
        private async void OnRequestPaused(object sender, RequestPausedEventArgs e)
        {
            if (this.NetworkRequestSent != null)
            {
                this.NetworkRequestSent(this, new NetworkRequestSentEventArgs(e.RequestData));
            }

            foreach (var handler in this.requestHandlers)
            {
                if (handler.RequestMatcher.Invoke(e.RequestData))
                {
                    if (handler.RequestTransformer != null)
                    {
                        await this.session.Value.Domains.Network.ContinueRequest(handler.RequestTransformer(e.RequestData));

                        return;
                    }

                    if (handler.ResponseSupplier != null)
                    {
                        await this.session.Value.Domains.Network.ContinueRequestWithResponse(e.RequestData, handler.ResponseSupplier(e.RequestData));

                        return;
                    }
                }
            }

            await this.session.Value.Domains.Network.ContinueRequestWithoutModification(e.RequestData);
        }
示例#2
0
        private void OnFetchRequestPaused(object sender, Fetch.RequestPausedEventArgs e)
        {
            if (e.ResponseErrorReason == null && e.ResponseStatusCode == null)
            {
                RequestPausedEventArgs wrapped = new RequestPausedEventArgs();
                wrapped.RequestData = new HttpRequestData()
                {
                    RequestId = e.RequestId,
                    Method    = e.Request.Method,
                    Url       = e.Request.Url,
                    PostData  = e.Request.PostData,
                    Headers   = new Dictionary <string, string>(e.Request.Headers)
                };
                this.OnRequestPaused(wrapped);
            }
            else
            {
                ResponsePausedEventArgs wrapped = new ResponsePausedEventArgs();
                wrapped.ResponseData = new HttpResponseData()
                {
                    RequestId    = e.RequestId,
                    StatusCode   = e.ResponseStatusCode.Value,
                    Url          = e.Request.Url,
                    ResourceType = e.ResourceType.ToString(),
                    ErrorReason  = e.ResponseErrorReason.HasValue ? e.ResponseErrorReason.Value.ToString() : ""
                };

                foreach (var header in e.ResponseHeaders)
                {
                    wrapped.ResponseData.Headers.Add(header.Name, header.Value);
                }

                this.OnResponsePaused(wrapped);
            }
        }
示例#3
0
        private void OnFetchRequestPaused(object sender, Fetch.RequestPausedEventArgs e)
        {
            if (e.ResponseErrorReason == null && e.ResponseStatusCode == null)
            {
                RequestPausedEventArgs wrapped = new RequestPausedEventArgs();
                wrapped.RequestData = new HttpRequestData()
                {
                    RequestId = e.RequestId,
                    Method    = e.Request.Method,
                    Url       = e.Request.Url,
                    PostData  = e.Request.PostData,
                    Headers   = new Dictionary <string, string>(e.Request.Headers)
                };

                this.OnRequestPaused(wrapped);
            }
            else
            {
                ResponsePausedEventArgs wrappedResponse = new ResponsePausedEventArgs();
                wrappedResponse.ResponseData = new HttpResponseData()
                {
                    RequestId    = e.RequestId,
                    Url          = e.Request.Url,
                    ResourceType = e.ResourceType.ToString()
                };

                if (e.ResponseStatusCode.HasValue)
                {
                    wrappedResponse.ResponseData.StatusCode = e.ResponseStatusCode.Value;
                }

                if (e.ResponseHeaders != null)
                {
                    foreach (var header in e.ResponseHeaders)
                    {
                        if (header.Name.ToLowerInvariant() == "set-cookie")
                        {
                            wrappedResponse.ResponseData.CookieHeaders.Add(header.Value);
                        }
                        else
                        {
                            if (wrappedResponse.ResponseData.Headers.ContainsKey(header.Name))
                            {
                                string currentHeaderValue = wrappedResponse.ResponseData.Headers[header.Name];
                                wrappedResponse.ResponseData.Headers[header.Name] = currentHeaderValue + ", " + header.Value;
                            }
                            else
                            {
                                wrappedResponse.ResponseData.Headers.Add(header.Name, header.Value);
                            }
                        }
                    }
                }

                this.OnResponsePaused(wrappedResponse);
            }
        }
示例#4
0
        private void OnFetchRequestPaused(object sender, Fetch.RequestPausedEventArgs e)
        {
            RequestPausedEventArgs wrapped = new RequestPausedEventArgs();

            if (e.ResponseErrorReason == null && e.ResponseStatusCode == null)
            {
                wrapped.RequestData = new HttpRequestData()
                {
                    RequestId = e.RequestId,
                    Method    = e.Request.Method,
                    Url       = e.Request.Url,
                    PostData  = e.Request.PostData,
                    Headers   = new Dictionary <string, string>(e.Request.Headers)
                };
            }

            this.OnRequestPaused(wrapped);
        }