It looks like that endpoint accepts JSON rather than form-urlencoded content. If you try this instead does it work?:
var client = new HttpClient();
client.BaseAddress = new Uri("https://onesignal.com/api/v1/notifications");
client.DefaultRequestHeaders.Add("authorization", "Basic " + onesignalUserAuth);
client.DefaultRequestHeaders.Add("Content-Type", "application/json");
var content = new StringContent(JsonSerializer.Serialize(new {
app_id = SecureStorage.GetAsync("AppID").Result,
contents = new {
en = EditorMessage.Text.Trim()
},
included_segments = "All"
}));
var response = await client.PostAsync("https://onesignal.com/api/v1/notifications", content);