Как правильно выполнить http.NewRequest с кириллицей?
1. Случай, когда в запросе кириллические символы:
У автора был url вида:https://domain.name/data.json?searchtext=Запрос+На+Кириллице
Строка запроса является частью url и по стандарту не может содержать не-ASCII символы (RFC 1738). Так как в url присутствут кириллические символы то url нужно кодировать (URL encoding), что и делает функция QueryEscape из пакета net/url.package main

import (
	"fmt"
	"net/url"
)

func main() {
	q := "Запрос+На+Кириллице"
	u := "https://domain.name/data.json"
	fmt.Println(u + "?searchtext=" + url.QueryEscape(q))
}$ go run main.go 
https://domain.name/data.json?searchtext=%D0%97%D0%B0%D0%BF%D1%80%D0%BE%D1%81%2B%D0%9D%D0%B0%2B%D0%9A%D0%B8%D1%80%D0%B8%D0%BB%D0%BB%D0%B8%D1%86%D0%B5https://ru.wikipedia.org/wiki/URL#Кодирование_URL2. Случай когда в url доменное имя на кириллице:go get golang.org/x/net/idnapackage main

import (
	"fmt"
	"golang.org/x/net/idna"
)
var p *idna.Profile

func main() {
	p = idna.New()
	fmt.Println(p.ToASCII("россия.рф"))
}$ go run main.go 
xn--h1alffa9f.xn--p1ai <nil>https://ru.wikipedia.org/wiki/IDNhttps://ru.wikipedia.org/wiki/Punycode
помогло url.QueryEscape текста на кириллице.