>백엔드 개발 >Golang >Grequest는 Python for GO의 요청 라이브러리에서 영감을 받았습니다.

Grequest는 Python for GO의 요청 라이브러리에서 영감을 받았습니다.

DDD
DDD원래의
2025-01-07 07:18:44475검색

Grequest is inspired by the Request library for Python for GO

http 요청을 위한 간단하고 가벼운 golang 패키지입니다. 강력한 net/http 기반

Grequest는 PHP의 Python 및 Guzzle용 요청 라이브러리에서 영감을 얻었으며, Go에서 http 요청을 만들기 위한 간단하고 편리한 라이브러리를 만드는 것이 목표입니다.

라이브러리에는 라이브러리 구조에 대한 포인터를 반환하는 메서드가 포함된 유연한 API가 있으므로 메서드 체인을 사용하여 요청을 선언적으로 설명할 수 있습니다.

설치

go get github.com/lib4u/grequest

용법

간단한 요청 받기 및 문자열 응답 받기

req := app.Get("https://jsonplaceholder.typicode.com/todos/1").Do()
    response := req.Body().GetStrings()
    fmt.Println(response)

응답을 받아 json 구조에 작성

type AutoGenerated struct {
    UserID    int    `json:"userId"`
    ID        int    `json:"id"`
    Title     string `json:"title"`
    Completed bool   `json:"completed"`
}
...
   var myJsonResponse AutoGenerated
    req := app.Get("https://jsonplaceholder.typicode.com/todos/1").Do()
    err := req.Body().GetWithJsonStruct(&myJsonResponse)
    if err != nil {
        fmt.Println("do ..")
    }
    fmt.Println(myJsonResponse.Title)

json 페이로드 본문을 사용한 간단한 게시물 요청 및 응답 상태 가져오기

data := LoginRequest{
        Username: "example",
        Password: "12345",
    }
    req := app.Post("https://example.site/login").Body().SetJson(data).Do()
    fmt.Println(req.Status().GetCode())

응답에서 간단한 저장 파일

// file will saved as ../files/image.png
app.Get("https://example.com/image.png").Do().Body().SaveFile()
//OR
app.Get("https://example.com/image.png").Do().Body().Path("/user/files").SaveFile()
//OR 
app.Get("https://example.com/image.png").Do().Body().ToFile("path/savedimage.png")

파일과 텍스트 필드가 포함된 양식 보내기 및 헤더 설정

req := app.Post("https://example.site/form/")
    req.Header().Set("Client", "number_1")
    form := req.FormData().WithMultipart()
    form.AddField("first_name", "John")
    form.AddField("last_name", "Doe")
    form.AddFile("photo", "my_photo.png")
    form.AddFile("documents", "example.txt")
    form.AddFile("documents", "example2.txt")
    form.Push()
    req.Do()
    .....

인증요청

//With basic auth
req := app.Post("https://example.site/secret)
    req.Header().Set("Client", "number_1")
    req.Auth().SetBasic("user", "password")
    req.Do()
    ...
    //Sets bearer token
    req := app.Post("https://example.site/secret)
    req.Header().Set("Client", "number_1")
    req.Auth().SetBearer("myToken")
    req.Do()

쿠키 작업

//Save cookie to file 
//By default this saved in  cookies/example.site/cookies.json
req := app.Post("https://example.site/cookies")
    req.Cookie().Save()
    ...
    // Load saved cookies form cookies/example.site/cookies.json
    reqWithCookie := app.Post("https://example.site/cookies")
    reqWithCookie.Cookie().Load()
    reqWithCookie.Do()
    ...

위 내용은 Grequest는 Python for GO의 요청 라이브러리에서 영감을 받았습니다.의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.