protected override async Task<HttpResponseMessage> SendAsync(HttpRequestMessage request, CancellationToken cancellationToken) { // var messageId = Guid.NewGuid(); var runscopeRequest = new RunscopeRequest(request); // Preread to ensure non-rewindable stream is not consumed by app //var runscopeMessage = new RunscopeMessage() //{ // UniqueIdentifier = messageId, // Request = runscopeRequest //}; // HandleFailedMessageLog(_RunscopeClient.SendAsync(messagesLink.Update(_bucketKey, runscopeMessage).CreateRequest())); var response = await base.SendAsync(request, cancellationToken); if (_filter == null || _filter(request, response)) { var runscopeMessage2 = new RunscopeMessage() { // UniqueIdentifier = messageId, Request = runscopeRequest, Response = new RunscopeResponse(response) }; var messagesLink = new MessagesLink(); HandleFailedMessageLog( _RunscopeClient.SendAsync(messagesLink.Update(_bucketKey, runscopeMessage2).CreateRequest())); } return response; }
protected override async Task <HttpResponseMessage> SendAsync(HttpRequestMessage request, CancellationToken cancellationToken) { // var messageId = Guid.NewGuid(); var runscopeRequest = new RunscopeRequest(request); // Preread to ensure non-rewindable stream is not consumed by app //var runscopeMessage = new RunscopeMessage() //{ // UniqueIdentifier = messageId, // Request = runscopeRequest //}; // HandleFailedMessageLog(_RunscopeClient.SendAsync(messagesLink.Update(_bucketKey, runscopeMessage).CreateRequest())); var response = await base.SendAsync(request, cancellationToken); if (_filter == null || _filter(request, response)) { var runscopeMessage2 = new RunscopeMessage() { // UniqueIdentifier = messageId, Request = runscopeRequest, Response = new RunscopeResponse(response) }; var messagesLink = new MessagesLink(); HandleFailedMessageLog( _RunscopeClient.SendAsync(messagesLink.Update(_bucketKey, runscopeMessage2).CreateRequest())); } return(response); }
protected override async Task <HttpResponseMessage> SendAsync(HttpRequestMessage request, CancellationToken cancellationToken) { var runscopeRequest = new RunscopeRequest(request); // Preread to ensure non-rewindable stream is not consumed by app var response = await base.SendAsync(request, cancellationToken); string bucket = _bucketKey; if (_bucketFilter != null) { bucket = _bucketFilter(request, response); } if (string.IsNullOrWhiteSpace(bucket)) { return(response); } if (_filter == null || _filter(request, response)) { var runscopeMessage = new RunscopeMessage() { Request = runscopeRequest, Response = new RunscopeResponse(response) }; var messagesLink = new MessagesLink(); HandleFailedMessageLog( _RunscopeClient.SendAsync(messagesLink.Update(bucket, runscopeMessage).CreateRequest())); } return(response); }
public HttpRequestMessage BuildPOSTRequest(string bucketKey, HttpRequestMessage request, HttpResponseMessage response) { var runscopeRequest = new RunscopeRequest(request); var runscopeResponse = new RunscopeResponse(response); var runscopeMessage = new RunscopeMessage { Request = runscopeRequest, Response = runscopeResponse }; return(BuildPOSTRequest(bucketKey, runscopeMessage)); }
public HttpRequestMessage BuildPOSTRequest(string bucketKey, HttpRequestMessage request, HttpResponseMessage response) { var runscopeRequest = new RunscopeRequest(request); var runscopeResponse = new RunscopeResponse(response); var runscopeMessage = new RunscopeMessage { Request = runscopeRequest, Response = runscopeResponse }; return BuildPOSTRequest(bucketKey, runscopeMessage); }
public void CreateMinimumRunscopeRequest() { var httpRequestMessage = new HttpRequestMessage() { RequestUri = new Uri("http://example.org")}; var message = new RunscopeRequest(httpRequestMessage); var jrequest = message.ToJObject(); var expected = new JObject(new[] { new JProperty("method", "GET"), new JProperty("url", "http://example.org"), }); Assert.Equal(expected,jrequest); }
public void CreateRunscopeRequestWithMultiValueHeaders() { var httpRequestMessage = new HttpRequestMessage() { RequestUri = new Uri("http://example.org") }; httpRequestMessage.Headers.Accept.Add(new MediaTypeWithQualityHeaderValue("application/xml")); httpRequestMessage.Headers.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json")); var message = new RunscopeRequest(httpRequestMessage); var jrequest = message.ToJObject(); var expected = new JObject(new[] { new JProperty("method", "GET"), new JProperty("url", "http://example.org"), new JProperty("headers", new JObject(new [] { new JProperty("Accept","application/xml, application/json"), } )), }); Assert.Equal(expected, jrequest); }
public void CreateRunscopeRequestWithSingleValueHeaders() { var httpRequestMessage = new HttpRequestMessage() { RequestUri = new Uri("http://example.org") }; httpRequestMessage.Headers.Authorization = new AuthenticationHeaderValue("basic","foo"); httpRequestMessage.Headers.CacheControl= new CacheControlHeaderValue() {MaxAge = new TimeSpan(0,0,0,30)}; var message = new RunscopeRequest(httpRequestMessage); var jrequest = message.ToJObject(); var expected = new JObject(new[] { new JProperty("method", "GET"), new JProperty("url", "http://example.org"), new JProperty("headers", new JObject(new [] { new JProperty("Authorization","basic foo"), new JProperty("Cache-Control","max-age=30") } )), }); Assert.Equal(expected, jrequest); }
public void CreateRunscopeRequestWithBody() { var httpRequestMessage = new HttpRequestMessage() { RequestUri = new Uri("http://example.org") }; httpRequestMessage.Content = new StringContent("This is some text"); var message = new RunscopeRequest(httpRequestMessage); var jrequest = message.ToJObject(); var expected = new JObject(new[] { new JProperty("method", "GET"), new JProperty("url", "http://example.org"), new JProperty("body", "This is some text"), new JProperty("headers", new JObject(new [] { new JProperty("Content-Type","text/plain; charset=utf-8"), } )) }); Assert.Equal(expected, jrequest); }