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); }
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); }
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); }
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); }