http.NewRequest в golang, конвертирующий некоторые фрахтователи в значения% - PullRequest
0 голосов
/ 24 мая 2018

go версия go1.8.1 windows / amd64

Пакет "net / http", используемый для создания http-запроса.

req, err := http.NewRequest("GET",`http://domain/_api/Web/GetFolderByServerRelativeUrl('` + root_folder_url + `')?$expand=Folders,Files`, nil)

Здесь, если я печатаю URL, он показывает

http://domain/_api/Web/GetFolderByServerRelativeUrl%28%27rooturl%27%29?$expand=Folders,Files

Не понимаю, почему анализатор URL заменяет ' на %27 здесь.Принимая во внимание, что мне нужно ', чтобы быть отправленным как есть во время запроса.

1 Ответ

0 голосов
/ 24 мая 2018

Функция http.NewRequest вызывает url.Parse для установки Request.URL .Метод URL.RequestURI вызывается для получения URI запроса, записанного в сеть.

Приложение может переопределить любое преобразование, выполненное с помощью Parse / RequestURI, установив URL запроса Opaque поле:

req, err := http.NewRequest("GET", "http://domain/", nil)
if err != nil {
   // handle error
}
req.URL.Opaque = `/_api/Web/GetFolderByServerRelativeUrl('` + root_folder_url + `')?$expand=Folders,Files`

В этом фрагменте аргумент NewRequest указывает протокол и хост для запроса.Непрозрачное значение указывает URI запроса, записанного в сеть.URI запроса не включает хост или протокол.

...