fix: update request body encoding to use utf-8 for JSON payloads

This commit is contained in:
insleker 2026-04-13 09:48:57 +08:00
parent 6931b85682
commit 4d2ced2b96
5 changed files with 19 additions and 17 deletions

View File

@ -745,9 +745,9 @@ class IssueTrackerClient {
if (body != null) { if (body != null) {
request.headers.set( request.headers.set(
HttpHeaders.contentTypeHeader, HttpHeaders.contentTypeHeader,
'application/json', 'application/json; charset=utf-8',
); );
request.write(jsonEncode(body)); request.add(utf8.encode(jsonEncode(body)));
} }
final response = await request.close(); final response = await request.close();
final responseBody = await utf8.decodeStream(response); final responseBody = await utf8.decodeStream(response);
@ -833,7 +833,7 @@ class IssueTrackerClient {
'Basic ${base64Encode(utf8.encode('apikey:${config.token}'))}', 'Basic ${base64Encode(utf8.encode('apikey:${config.token}'))}',
); );
if (body != null) { if (body != null) {
request.write(jsonEncode(body)); request.add(utf8.encode(jsonEncode(body)));
} }
final response = await request.close(); final response = await request.close();

View File

@ -125,7 +125,8 @@ class DiscordWebhookNotifier implements Notifier {
final uri = Uri.parse(webhookUrl); final uri = Uri.parse(webhookUrl);
final request = await _httpClient.postUrl(uri); final request = await _httpClient.postUrl(uri);
request.headers.contentType = ContentType.json; request.headers.contentType = ContentType.json;
request.write( request.add(
utf8.encode(
jsonEncode({ jsonEncode({
'content': formatDiscordNotificationMessage( 'content': formatDiscordNotificationMessage(
event: event, event: event,
@ -136,6 +137,7 @@ class DiscordWebhookNotifier implements Notifier {
if (config.avatarUrl != null && config.avatarUrl!.isNotEmpty) if (config.avatarUrl != null && config.avatarUrl!.isNotEmpty)
'avatar_url': config.avatarUrl, 'avatar_url': config.avatarUrl,
}), }),
),
); );
final response = await request.close(); final response = await request.close();

View File

@ -944,7 +944,7 @@
"worktrunk": { "worktrunk": {
"source": "max-sixty/worktrunk", "source": "max-sixty/worktrunk",
"sourceType": "github", "sourceType": "github",
"computedHash": "252c02ad30d62a966f6eff331be0b440c058bb346462b8ef0dab276c9ea2abbc" "computedHash": "7123a4ec54e86c85723f1fdfb0bc1ea338e3f54078aafb791bb6fe12987022e7"
}, },
"write-coding-standards-from-file": { "write-coding-standards-from-file": {
"source": "github/awesome-copilot", "source": "github/awesome-copilot",

View File

@ -363,7 +363,7 @@ Future<void> _postGitHubWebhook(
final request = await client.postUrl(Uri.parse(targetUrl)); final request = await client.postUrl(Uri.parse(targetUrl));
request.headers.contentType = ContentType.json; request.headers.contentType = ContentType.json;
request.headers.set('X-GitHub-Event', 'issue_comment'); request.headers.set('X-GitHub-Event', 'issue_comment');
request.write(jsonEncode(webhookPayload)); request.add(utf8.encode(jsonEncode(webhookPayload)));
await request.close(); await request.close();
} finally { } finally {
client.close(force: true); client.close(force: true);

View File

@ -78,7 +78,7 @@ Future<void> _postWebhook(
final request = await client.postUrl(Uri.parse(targetUrl)); final request = await client.postUrl(Uri.parse(targetUrl));
request.headers.contentType = ContentType.json; request.headers.contentType = ContentType.json;
request.headers.set(webhookHeader, 'issue_comment'); request.headers.set(webhookHeader, 'issue_comment');
request.write(jsonEncode(payload)); request.add(utf8.encode(jsonEncode(payload)));
await request.close(); await request.close();
} finally { } finally {
client.close(force: true); client.close(force: true);