Skip to content

Commit 259be16

Browse files
committed
Set additional header for every request
1 parent 69c96d6 commit 259be16

2 files changed

Lines changed: 33 additions & 2 deletions

File tree

WebUntisAPI.Client/WebUntisClient.Teaching.cs

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -114,7 +114,15 @@ public async Task<News> GetNewsFeedAsync(DateTime date, CancellationToken ct = d
114114
throw new UnauthorizedAccessException("You're not logged in");
115115

116116
date.ToWebUntisTimeFormat(out string dateString, out _);
117-
HttpResponseMessage response = await _client.GetAsync(ServerUrl + "/WebUntis/api/public/news/newsWidgetData?date=" + dateString, ct);
117+
118+
HttpRequestMessage request = new HttpRequestMessage()
119+
{
120+
Method = HttpMethod.Get,
121+
RequestUri = new Uri(ServerUrl + "/WebUntis/api/public/news/newsWidgetData?date=" + dateString)
122+
};
123+
SetRequestHeaders(request.Headers);
124+
125+
HttpResponseMessage response = await _client.SendAsync(request, ct);
118126

119127
// Check cancellation token
120128
if (ct.IsCancellationRequested)

WebUntisAPI.Client/WebUntisClient.cs

Lines changed: 24 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
using System.Linq;
44
using System.Net;
55
using System.Net.Http;
6+
using System.Net.Http.Headers;
67
using System.Text;
78
using System.Text.RegularExpressions;
89
using System.Threading;
@@ -58,6 +59,16 @@ public partial class WebUntisClient : IDisposable
5859
/// </summary>
5960
private string _sessonId;
6061

62+
/// <summary>
63+
/// The school name for the sesson
64+
/// </summary>
65+
private string _schoolName;
66+
67+
/// <summary>
68+
/// The trace id for the sesson
69+
/// </summary>
70+
private string _traceId;
71+
6172
/// <summary>
6273
/// Initialize a new client
6374
/// </summary>
@@ -201,7 +212,7 @@ public async Task LogoutAsync(string id = "Logout", CancellationToken ct = defau
201212
Params = new object()
202213
};
203214
StringContent requestContent = new StringContent(JsonConvert.SerializeObject(requestModel), Encoding.UTF8, "application/json");
204-
requestContent.Headers.Add("jsessionid", _sessonId);
215+
SetRequestHeaders(requestContent.Headers);
205216

206217
// Send request
207218
_ = await _client.PostAsync(ServerUrl + "/WebUntis/jsonrpc.do", requestContent, ct);
@@ -262,6 +273,7 @@ private async Task<TResult> MakeJSONRPCRequestAsync<TRequest, TResult>(string id
262273
Params = requestParams
263274
};
264275
StringContent requestContent = new StringContent(JsonConvert.SerializeObject(requestModel), Encoding.UTF8, "application/json");
276+
SetRequestHeaders(requestContent.Headers);
265277

266278
// Send request
267279
HttpResponseMessage response = await _client.PostAsync(ServerUrl + requestUrl, requestContent, ct);
@@ -292,6 +304,17 @@ private async Task<TResult> MakeJSONRPCRequestAsync<TRequest, TResult>(string id
292304
return responseModel.Result;
293305
}
294306

307+
/// <summary>
308+
/// Add the default headers to a WebUntis API request
309+
/// </summary>
310+
/// <param name="headers">The headers object to add</param>
311+
private void SetRequestHeaders(HttpHeaders headers)
312+
{
313+
headers.Add("JSESSIONID", _sessonId);
314+
headers.Add("schoolname", _schoolName);
315+
headers.Add("traceId", _traceId);
316+
}
317+
295318
#region IDisposable
296319
private bool _disposedValue;
297320

0 commit comments

Comments
 (0)