mirror of
https://github.com/duke-git/lancet.git
synced 2026-02-04 21:02:27 +08:00
100 lines
1.6 KiB
Go
100 lines
1.6 KiB
Go
package netutil
|
|
|
|
import "fmt"
|
|
|
|
func ExampleHttpClient_SendRequest() {
|
|
request := &HttpRequest{
|
|
RawURL: "https://jsonplaceholder.typicode.com/todos/1",
|
|
Method: "GET",
|
|
}
|
|
|
|
httpClient := NewHttpClient()
|
|
resp, err := httpClient.SendRequest(request)
|
|
if err != nil || resp.StatusCode != 200 {
|
|
return
|
|
}
|
|
|
|
type Todo struct {
|
|
UserId int `json:"userId"`
|
|
Id int `json:"id"`
|
|
Title string `json:"title"`
|
|
Completed bool `json:"completed"`
|
|
}
|
|
|
|
var todo Todo
|
|
err = httpClient.DecodeResponse(resp, &todo)
|
|
if err != nil {
|
|
return
|
|
}
|
|
|
|
fmt.Println(todo.Id)
|
|
|
|
// Output:
|
|
// 1
|
|
}
|
|
|
|
func ExampleHttpClient_DecodeResponse() {
|
|
request := &HttpRequest{
|
|
RawURL: "https://jsonplaceholder.typicode.com/todos/1",
|
|
Method: "GET",
|
|
}
|
|
|
|
httpClient := NewHttpClient()
|
|
resp, err := httpClient.SendRequest(request)
|
|
if err != nil || resp.StatusCode != 200 {
|
|
return
|
|
}
|
|
|
|
type Todo struct {
|
|
UserId int `json:"userId"`
|
|
Id int `json:"id"`
|
|
Title string `json:"title"`
|
|
Completed bool `json:"completed"`
|
|
}
|
|
|
|
var todo Todo
|
|
err = httpClient.DecodeResponse(resp, &todo)
|
|
if err != nil {
|
|
return
|
|
}
|
|
|
|
fmt.Println(todo.Id)
|
|
|
|
// Output:
|
|
// 1
|
|
}
|
|
|
|
func ExampleStructToUrlValues() {
|
|
type TodoQuery struct {
|
|
Id int `json:"id"`
|
|
Name string `json:"name"`
|
|
}
|
|
todoQuery := TodoQuery{
|
|
Id: 1,
|
|
Name: "Test",
|
|
}
|
|
todoValues := StructToUrlValues(todoQuery)
|
|
|
|
fmt.Println(todoValues.Get("id"))
|
|
fmt.Println(todoValues.Get("name"))
|
|
|
|
// Output:
|
|
// 1
|
|
// Test
|
|
}
|
|
|
|
func ExampleConvertMapToQueryString() {
|
|
var m = map[string]any{
|
|
"c": 3,
|
|
"a": 1,
|
|
"b": 2,
|
|
}
|
|
|
|
qs := ConvertMapToQueryString(m)
|
|
|
|
fmt.Println(qs)
|
|
|
|
// Output:
|
|
// a=1&b=2&c=3
|
|
}
|