示例#1
0
        private async Task Proxy_BeforeResponse(object sender, global::Titanium.Web.Proxy.EventArguments.SessionEventArgs e)
        {
            var args = SessionEventArgs.Create(await Session.CreateAsync(e));

            this.HttpResponseReceived?.Invoke(sender, args);
            e.SetValues(args.Session.Response);
        }
示例#2
0
        public static void SetValues(this global::Titanium.Web.Proxy.EventArguments.SessionEventArgs e, IHttpRequest request)
        {
            e.HttpClient.Request.Method      = request.RequestLine.Method.Method;
            e.HttpClient.Request.OriginalUrl = request.RequestLine.RequestTarget;   //TODO 要検討
            e.HttpClient.Request.HttpVersion = request.RequestLine.HttpVersion;

            e.HttpClient.Request.Headers.Clear();
            e.HttpClient.Request.Headers.AddHeaders(request.Headers.Select(x => x.ToHeader()));

            e.SetRequestBody(request.Body);
        }
示例#3
0
        public static void SetValues(this global::Titanium.Web.Proxy.EventArguments.SessionEventArgs e, IHttpResponse response)
        {
            e.HttpClient.Response.HttpVersion       = response.StatusLine.HttpVersion;
            e.HttpClient.Response.StatusCode        = (int)response.StatusLine.StatusCode;
            e.HttpClient.Response.StatusDescription = response.StatusLine.ReasonPhrase;

            e.HttpClient.Response.Headers.Clear();
            e.HttpClient.Response.Headers.AddHeaders(response.Headers.Select(x => x.ToHeader()));

            e.SetResponseBody(response.Body);
        }
示例#4
0
        private async Task Proxy_AfterResponse(object sender, global::Titanium.Web.Proxy.EventArguments.SessionEventArgs e)
        {
            var args = ReadOnlySessionEventArgs.Create(await Session.CreateAsync(e));

            this.HttpResponseSent?.Invoke(sender, args);
        }