package main
import (
"bytes"
"encoding/json"
"fmt"
"io/ioutil"
"net/http"
)
// Struct для отправки запроса на перевод
type TranslationRequest struct {
Text string `json: "text" `
Target string `json: "target_language" `
}
// Struct для обработки ответа от API
type TranslationResponse struct {
TranslatedText string `json: "translated_text" `
}
func main( ) {
// Текст, который нужно перевести
textToTranslate := "Hello, world!"
targetLang := "ru"
// Создание запроса
requestBody, _ := json.Marshal ( TranslationRequest{ Text: textToTranslate, Target: targetLang} )
req, err := http.NewRequest ( "POST" , "https://a...content-available-to-author-only...r.com/translate" , bytes.NewBuffer ( requestBody) )
if err != nil {
fmt.Println ( "Ошибка при создании запроса:" , err)
return
}
req.Header .Set ( "Content-Type" , "application/json" )
// Здесь может понадобиться добавить заголовок с ключом API, например:
// req.Header.Set("Authorization", "Bearer YOUR_API_KEY")
// Выполнение запроса
client := & http.Client { }
resp, err := client.Do ( req)
if err != nil {
fmt.Println ( "Ошибка при выполнении запроса:" , err)
return
}
defer resp.Body .Close ( )
// Чтение и обработка ответа
body, err := ioutil.ReadAll ( resp.Body )
if err != nil {
fmt.Println ( "Ошибка при чтении ответа:" , err)
return
}
// Парсинг ответа
var translationResp TranslationResponse
err = json.Unmarshal ( body, & translationResp)
if err != nil {
fmt.Println ( "Ошибка при парсинге JSON:" , err)
return
}
fmt.Printf ( "Оригинал: %s\n " , textToTranslate)
fmt.Printf ( "Перевод: %s\n " , translationResp.TranslatedText )
}
cGFja2FnZSBtYWluCgppbXBvcnQgKAoJImJ5dGVzIgoJImVuY29kaW5nL2pzb24iCgkiZm10IgoJImlvL2lvdXRpbCIKCSJuZXQvaHR0cCIKKQoKLy8gU3RydWN0INC00LvRjyDQvtGC0L/RgNCw0LLQutC4INC30LDQv9GA0L7RgdCwINC90LAg0L/QtdGA0LXQstC+0LQKdHlwZSBUcmFuc2xhdGlvblJlcXVlc3Qgc3RydWN0IHsKCVRleHQgICBzdHJpbmcgYGpzb246InRleHQiYAoJVGFyZ2V0IHN0cmluZyBganNvbjoidGFyZ2V0X2xhbmd1YWdlImAKfQoKLy8gU3RydWN0INC00LvRjyDQvtCx0YDQsNCx0L7RgtC60Lgg0L7RgtCy0LXRgtCwINC+0YIgQVBJCnR5cGUgVHJhbnNsYXRpb25SZXNwb25zZSBzdHJ1Y3QgewoJVHJhbnNsYXRlZFRleHQgc3RyaW5nIGBqc29uOiJ0cmFuc2xhdGVkX3RleHQiYAp9CgpmdW5jIG1haW4oKSB7CgkvLyDQotC10LrRgdGCLCDQutC+0YLQvtGA0YvQuSDQvdGD0LbQvdC+INC/0LXRgNC10LLQtdGB0YLQuAoJdGV4dFRvVHJhbnNsYXRlIDo9ICJIZWxsbywgd29ybGQhIgoJdGFyZ2V0TGFuZyA6PSAicnUiCgoJLy8g0KHQvtC30LTQsNC90LjQtSDQt9Cw0L/RgNC+0YHQsAoJcmVxdWVzdEJvZHksIF8gOj0ganNvbi5NYXJzaGFsKFRyYW5zbGF0aW9uUmVxdWVzdHtUZXh0OiB0ZXh0VG9UcmFuc2xhdGUsIFRhcmdldDogdGFyZ2V0TGFuZ30pCglyZXEsIGVyciA6PSBodHRwLk5ld1JlcXVlc3QoIlBPU1QiLCAiaHR0cHM6Ly9hLi4uY29udGVudC1hdmFpbGFibGUtdG8tYXV0aG9yLW9ubHkuLi5yLmNvbS90cmFuc2xhdGUiLCBieXRlcy5OZXdCdWZmZXIocmVxdWVzdEJvZHkpKQoJaWYgZXJyICE9IG5pbCB7CgkJZm10LlByaW50bG4oItCe0YjQuNCx0LrQsCDQv9GA0Lgg0YHQvtC30LTQsNC90LjQuCDQt9Cw0L/RgNC+0YHQsDoiLCBlcnIpCgkJcmV0dXJuCgl9CglyZXEuSGVhZGVyLlNldCgiQ29udGVudC1UeXBlIiwgImFwcGxpY2F0aW9uL2pzb24iKQoJLy8g0JfQtNC10YHRjCDQvNC+0LbQtdGCINC/0L7QvdCw0LTQvtCx0LjRgtGM0YHRjyDQtNC+0LHQsNCy0LjRgtGMINC30LDQs9C+0LvQvtCy0L7QuiDRgSDQutC70Y7Rh9C+0LwgQVBJLCDQvdCw0L/RgNC40LzQtdGAOgoJLy8gcmVxLkhlYWRlci5TZXQoIkF1dGhvcml6YXRpb24iLCAiQmVhcmVyIFlPVVJfQVBJX0tFWSIpCgoJLy8g0JLRi9C/0L7Qu9C90LXQvdC40LUg0LfQsNC/0YDQvtGB0LAKCWNsaWVudCA6PSAmaHR0cC5DbGllbnR7fQoJcmVzcCwgZXJyIDo9IGNsaWVudC5EbyhyZXEpCglpZiBlcnIgIT0gbmlsIHsKCQlmbXQuUHJpbnRsbigi0J7RiNC40LHQutCwINC/0YDQuCDQstGL0L/QvtC70L3QtdC90LjQuCDQt9Cw0L/RgNC+0YHQsDoiLCBlcnIpCgkJcmV0dXJuCgl9CglkZWZlciByZXNwLkJvZHkuQ2xvc2UoKQoKCS8vINCn0YLQtdC90LjQtSDQuCDQvtCx0YDQsNCx0L7RgtC60LAg0L7RgtCy0LXRgtCwCglib2R5LCBlcnIgOj0gaW91dGlsLlJlYWRBbGwocmVzcC5Cb2R5KQoJaWYgZXJyICE9IG5pbCB7CgkJZm10LlByaW50bG4oItCe0YjQuNCx0LrQsCDQv9GA0Lgg0YfRgtC10L3QuNC4INC+0YLQstC10YLQsDoiLCBlcnIpCgkJcmV0dXJuCgl9CgoJLy8g0J/QsNGA0YHQuNC90LMg0L7RgtCy0LXRgtCwCgl2YXIgdHJhbnNsYXRpb25SZXNwIFRyYW5zbGF0aW9uUmVzcG9uc2UKCWVyciA9IGpzb24uVW5tYXJzaGFsKGJvZHksICZ0cmFuc2xhdGlvblJlc3ApCglpZiBlcnIgIT0gbmlsIHsKCQlmbXQuUHJpbnRsbigi0J7RiNC40LHQutCwINC/0YDQuCDQv9Cw0YDRgdC40L3Qs9C1IEpTT046IiwgZXJyKQoJCXJldHVybgoJfQoKCWZtdC5QcmludGYoItCe0YDQuNCz0LjQvdCw0Ls6ICVzXG4iLCB0ZXh0VG9UcmFuc2xhdGUpCglmbXQuUHJpbnRmKCLQn9C10YDQtdCy0L7QtDogJXNcbiIsIHRyYW5zbGF0aW9uUmVzcC5UcmFuc2xhdGVkVGV4dCkKfQo=