From 8a141e641e9af8c6410d5c5ed97057304a33be66 Mon Sep 17 00:00:00 2001 From: eeeXun Date: Sat, 4 Feb 2023 13:31:56 +0800 Subject: [PATCH] refactor(argostranslate): use PostForm instead of Post The newline of message in url.Values in PostForm doesn't need to be replaced by `\n` --- .../translate/argostranslate/translator.go | 18 +++++++----------- 1 file changed, 7 insertions(+), 11 deletions(-) diff --git a/internal/translate/argostranslate/translator.go b/internal/translate/argostranslate/translator.go index 7f6cd32..d296210 100644 --- a/internal/translate/argostranslate/translator.go +++ b/internal/translate/argostranslate/translator.go @@ -1,14 +1,13 @@ package argostranslate import ( - "bytes" "encoding/json" "errors" "fmt" "gtt/internal/lock" "io/ioutil" "net/http" - "strings" + "net/url" ) const ( @@ -57,15 +56,12 @@ func (t *ArgosTranslate) Translate(message string) ( err error) { var data interface{} - res, err := http.Post(textURL, - "application/json", - bytes.NewBuffer([]byte(fmt.Sprintf(`{ - "q": "%s", - "source": "%s", - "target": "%s" }`, - strings.Replace(message, "\n", `\n`, -1), - langCode[t.srcLang], - langCode[t.dstLang])))) + res, err := http.PostForm(textURL, + url.Values{ + "q": {message}, + "source": {langCode[t.srcLang]}, + "target": {langCode[t.dstLang]}, + }) if err != nil { return "", "", "", err }