Ответ 1
bs := string(body)
должно быть достаточно, чтобы получить строку.
Оттуда вы можете использовать его как обычную строку.
Немного как в этой теме:
var client http.Client
resp, err := client.Get(url)
if err != nil {
log.Fatal(err)
}
defer resp.Body.Close()
if resp.StatusCode == http.StatusOK {
bodyBytes, err := ioutil.ReadAll(resp.Body)
if err != nil {
log.Fatal(err)
}
bodyString := string(bodyBytes)
log.Info(bodyString)
}
Смотрите также GoByExample.
Как отмечено ниже (и в ответе zzn), это конверсия (см. Спецификацию).
Смотрите " Сколько стоит []byte(string)
? " (Обратная проблема, но применяется тот же вывод), где упоминается zzzz:
Некоторые преобразования такие же, как приведение типа
uint(myIntvar)
, который просто интерпретирует биты на месте.
Соня добавляет:
Создание строки из байтового фрагмента, безусловно, предполагает выделение строки в куче. Свойство неизменности заставляет это.
Иногда вы можете оптимизировать, выполняя как можно больше работы с байтом [], а затем создавая строку в конце. Типbytes.Buffer
часто бывает полезен.