forked from Kieran/void.cat
Print analytics request body
This commit is contained in:
parent
10287d097b
commit
583c66a00a
@ -25,7 +25,7 @@ public class PlausibleAnalytics : IWebAnalyticsCollector
|
|||||||
public async Task TrackPageView(HttpContext context)
|
public async Task TrackPageView(HttpContext context)
|
||||||
{
|
{
|
||||||
var request = new HttpRequestMessage(HttpMethod.Post, "/api/event");
|
var request = new HttpRequestMessage(HttpMethod.Post, "/api/event");
|
||||||
request.Headers.Add("user-agent", context.Request.Headers.UserAgent.First());
|
request.Headers.UserAgent.ParseAdd(context.Request.Headers.UserAgent);
|
||||||
if (context.Request.Headers.TryGetValue("x-forwarded-for", out var xff))
|
if (context.Request.Headers.TryGetValue("x-forwarded-for", out var xff))
|
||||||
{
|
{
|
||||||
foreach (var xf in xff)
|
foreach (var xf in xff)
|
||||||
@ -37,21 +37,24 @@ public class PlausibleAnalytics : IWebAnalyticsCollector
|
|||||||
var ub = new UriBuilder(_siteUrl)
|
var ub = new UriBuilder(_siteUrl)
|
||||||
{
|
{
|
||||||
Path = context.Request.Path,
|
Path = context.Request.Path,
|
||||||
Query = context.Request.QueryString.Value
|
Query = context.Request.QueryString.ToUriComponent()
|
||||||
};
|
};
|
||||||
|
|
||||||
var ev = new EventObj(_domain, ub.Uri)
|
var ev = new EventObj(_domain, ub.Uri)
|
||||||
{
|
{
|
||||||
Referrer =
|
Referrer =
|
||||||
context.Request.Headers.Referer.Any()
|
context.Request.Headers.Referer.Any()
|
||||||
? new Uri(context.Request.Headers.Referer.FirstOrDefault()!)
|
? new Uri(context.Request.Headers.Referer.ToString())
|
||||||
: null
|
: null
|
||||||
};
|
};
|
||||||
|
|
||||||
request.Content = new ByteArrayContent(Encoding.UTF8.GetBytes(JsonConvert.SerializeObject(ev)));
|
var json = JsonConvert.SerializeObject(ev, new JsonSerializerSettings()
|
||||||
request.Content.Headers.ContentType = new("application/json");
|
{
|
||||||
|
NullValueHandling = NullValueHandling.Ignore
|
||||||
|
});
|
||||||
|
|
||||||
_logger.LogDebug("Sending pageview {request}", request.ToString());
|
request.Content = new StringContent(json, Encoding.UTF8, "application/json");
|
||||||
|
_logger.LogDebug("Sending pageview {request} {json}", request.ToString(), json);
|
||||||
var rsp = await _client.SendAsync(request);
|
var rsp = await _client.SendAsync(request);
|
||||||
if (!rsp.IsSuccessStatusCode)
|
if (!rsp.IsSuccessStatusCode)
|
||||||
{
|
{
|
||||||
|
Loading…
Reference in New Issue
Block a user