[#76] Utils: Fix non-ascii characters in User-Agent header
This commit is contained in:
+16
-13
@@ -483,12 +483,20 @@ namespace Elwig.Helpers {
|
||||
return InternetGetConnectedState(out var _, 0);
|
||||
}
|
||||
|
||||
public static string ReplaceUmlaute(string s) {
|
||||
return s
|
||||
.Replace("ä", "ae").Replace("Ä", "Ae")
|
||||
.Replace("ö", "oe").Replace("Ö", "Oe")
|
||||
.Replace("ü", "ue").Replace("Ü", "Ue")
|
||||
.Replace("ß", "ss").Replace("ẞ", "SS");
|
||||
}
|
||||
|
||||
public static HttpClient GetHttpClient(string? username = null, string? password = null, string? accept = null) {
|
||||
var client = new HttpClient() {
|
||||
Timeout = TimeSpan.FromSeconds(5),
|
||||
};
|
||||
client.DefaultRequestHeaders.UserAgent.Clear();
|
||||
client.DefaultRequestHeaders.UserAgent.ParseAdd($"Elwig/{App.Version} ({App.Client?.NameToken}, {App.BranchName}, {Environment.MachineName}, {Environment.OSVersion})");
|
||||
client.DefaultRequestHeaders.UserAgent.ParseAdd($"Elwig/{App.Version} ({App.Client?.NameToken}, {ReplaceUmlaute(App.BranchName)}, {Environment.MachineName}, {Environment.OSVersion})");
|
||||
client.DefaultRequestHeaders.Accept.Clear();
|
||||
if (accept != null)
|
||||
client.DefaultRequestHeaders.Accept.Add(new(accept));
|
||||
@@ -497,18 +505,13 @@ namespace Elwig.Helpers {
|
||||
return client;
|
||||
}
|
||||
|
||||
public static async Task<(string Version, string Url, long Size)?> GetLatestInstallerUrl(string url) {
|
||||
try {
|
||||
using var client = GetHttpClient(accept: "application/json");
|
||||
using var res = await client.GetAsync(url);
|
||||
if (!res.IsSuccessStatusCode)
|
||||
return null;
|
||||
var resJson = JsonNode.Parse(await res.Content.ReadAsStringAsync());
|
||||
var data = resJson!["data"]!.AsArray()[^1]!;
|
||||
return ((string)data["version"]!, (string)data["url"]!, (long)data["size"]!);
|
||||
} catch {
|
||||
return null;
|
||||
}
|
||||
public static async Task<(string Version, string Url, long Size)> GetLatestInstallerUrl(string url) {
|
||||
using var client = GetHttpClient(accept: "application/json");
|
||||
using var res = await client.GetAsync(url);
|
||||
res.EnsureSuccessStatusCode();
|
||||
var resJson = JsonNode.Parse(await res.Content.ReadAsStringAsync());
|
||||
var data = resJson!["data"]!.AsArray()[^1]!;
|
||||
return ((string)data["version"]!, (string)data["url"]!, (long)data["size"]!);
|
||||
}
|
||||
|
||||
public static async Task UploadExportData(string zip, string url, string username, string password) {
|
||||
|
||||
Reference in New Issue
Block a user