четверг, 6 февраля 2020 г.

Функции Get, Head, Post, PostForm пакета net/http в Golang

Функция Get

func Get(url string) (resp *Response, err error)

Get выдает GET по указанному URL. Если ответ является одним из следующих кодов перенаправления, Get следует за перенаправлением, максимум до 10 перенаправлений:

301 (Moved Permanently)
302 (Found)
303 (See Other)
307 (Temporary Redirect)
308 (Permanent Redirect)

Ошибка возвращается, если было слишком много перенаправлений или если произошла ошибка протокола HTTP. Ответ не-2xx не вызывает ошибку. Любая возвращаемая ошибка будет иметь тип *url.Error. Метод Timeout значения url.Error сообщит true, если запрос истек или был отменен.

Когда err равно nil, resp всегда содержит не-nil resp.Body. Вызывающий должен закрыть resp.Body когда закончил чтение с него.

Get - это обертка вокруг DefaultClient.Get.

Чтобы сделать запрос с пользовательскими заголовками, используйте NewRequest и DefaultClient.Do.

Пример использования Get:

package main

import (
  "fmt"
  "io/ioutil"
  "log"
  "net/http"
)

func main() {
  res, err := http.Get("http://www.google.com/robots.txt")
  if err != nil {
    log.Fatal(err)
  }
  robots, err := ioutil.ReadAll(res.Body)
  res.Body.Close()
  if err != nil {
    log.Fatal(err)
  }
  fmt.Printf("%s", robots)
}

Функция Head

func Head(url string) (resp *Response, err error)

Head отправляет HEAD на указанный URL. Если ответом является один из следующих кодов перенаправления, Head следует за перенаправлением, максимум до 10 перенаправлений:

301 (Moved Permanently)
302 (Found)
303 (See Other)
307 (Temporary Redirect)
308 (Permanent Redirect)

Head является оберткой вокруг DefaultClient.Head

Функция Post

func Post(url, contentType string, body io.Reader) (resp *Response, err error)

Post отправляет POST по указанному URL.

Вызывающий должен закрыть resp.Body когда закончит чтение с него.

Если предоставленное тело является io.Closer, оно закрывается после запроса.

Post является оберткой вокруг DefaultClient.Post.

Чтобы установить пользовательские заголовки, используйте NewRequest и DefaultClient.Do.

Функция PostForm

func PostForm(url string, data url.Values) (resp *Response, err error)

PostForm отправляет POST для указанного URL с ключами и значениями данных, закодированными в виде тела запроса.

Заголовок Content-Type установлен на application/x-www-form-urlencoded. Чтобы установить другие заголовки, используйте NewRequest и DefaultClient.Do.

Когда err равно nil, resp всегда содержит не-nil resp.Body. Вызывающий должен закрыть resp.Body, когда закончит чтение с него.

PostForm - это обертка вокруг DefaultClient.PostForm.


Читайте также:


Комментариев нет:

Отправить комментарий