Skip to content

Commit

Permalink
example: add more examples about ssl, debug, curl, trace, error, etc.
Browse files Browse the repository at this point in the history
  • Loading branch information
ahuigo committed Oct 10, 2023
1 parent d647eda commit fa336ff
Show file tree
Hide file tree
Showing 29 changed files with 226 additions and 224 deletions.
9 changes: 4 additions & 5 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -1,6 +1,5 @@
# Compiled Object files, Static and Dynamic libs (Shared Objects)
*.o
.vscode/
*.a
*.so

Expand All @@ -27,8 +26,8 @@ _testmain.go
coverage.out
coverage.txt

# Mac osx
.DS_Store

# Exclude intellij IDE folders
# Exclude IDE folders
.idea/*
.vscode/*
__debug_bin
.DS_Store
19 changes: 19 additions & 0 deletions conf/nginx.crt
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
-----BEGIN CERTIFICATE-----
MIIDIjCCAgqgAwIBAgIUPkbRM1znk+3fLI8g5eB5i8Ie3K0wDQYJKoZIhvcNAQEL
BQAwFTETMBEGA1UEAwwKbG9jYWwuc2VsZjAeFw0yMzAzMjgwMzQ1MDlaFw0yNDAz
MjcwMzQ1MDlaMBUxEzARBgNVBAMMCmxvY2FsLnNlbGYwggEiMA0GCSqGSIb3DQEB
AQUAA4IBDwAwggEKAoIBAQDIdnZmgBgAGOChpZGwikpQgTRTkqFNKQV5jRQXr7r7
3xV+PilkDShz+UWfYG3zszLX7L9jllIDj1V5YALV+f3tjDaPnptSUnNIKIdjripQ
ojX5639oCmHA4ZnYbDxx8GcNlfOLGW4oAVuY9PHaL69nmrHq58wQX2VPR6jCjzCY
T0putkMCRbCTbzeb0ntcEHNKrVuk8TlLxGnNNXyeF1BS6YHa9/3PwXmwsApZ1fY2
KepHclqVISz+E0Cj4KkVvGI++9KBBDcNMEyerhU0ocotXoqQxQKm+eeED44LKnnh
czPION+xRTfsqn+j8AyrShY+JkBt+VseOlOeNpn25p5dAgMBAAGjajBoMB0GA1Ud
DgQWBBQ8aBcGhCLZzEGztBxgChe+zIY88TAfBgNVHSMEGDAWgBQ8aBcGhCLZzEGz
tBxgChe+zIY88TAPBgNVHRMBAf8EBTADAQH/MBUGA1UdEQQOMAyCCmxvY2FsLnNl
bGYwDQYJKoZIhvcNAQELBQADggEBAHBKNQHNBlRdI6cICeEkBYpoJRg1UBCEpxPo
A7He5EN1vZReJcMoFoc86tPsvUaIwsgqiEu6S0sQNahJHKF0FwcB+A6F9kQmW7si
CrQw9hHneooEmYs2CldNV4w51HWKNDZ5Ra+gH5B2AKR1EWFDh4MMzPlL2MPgasFC
OeAOFrftD8hLLSvCvDsIall/pOg6wTP5vimndsjw+fPk7/SRAqZZzM1EQ4WZ7uZq
oRXdSOhtfyEZYsC04VQNT0KAD+m73ctYXn4EHRpHx5tA1ZkKuuOLOXSVYmHRkk72
ReutF5Khp+XIjc77fHX6KRCWxT/KE23a4aEmmJzKhV3A1bcvpQ4=
-----END CERTIFICATE-----
28 changes: 28 additions & 0 deletions conf/nginx.key
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
-----BEGIN PRIVATE KEY-----
MIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQDIdnZmgBgAGOCh
pZGwikpQgTRTkqFNKQV5jRQXr7r73xV+PilkDShz+UWfYG3zszLX7L9jllIDj1V5
YALV+f3tjDaPnptSUnNIKIdjripQojX5639oCmHA4ZnYbDxx8GcNlfOLGW4oAVuY
9PHaL69nmrHq58wQX2VPR6jCjzCYT0putkMCRbCTbzeb0ntcEHNKrVuk8TlLxGnN
NXyeF1BS6YHa9/3PwXmwsApZ1fY2KepHclqVISz+E0Cj4KkVvGI++9KBBDcNMEye
rhU0ocotXoqQxQKm+eeED44LKnnhczPION+xRTfsqn+j8AyrShY+JkBt+VseOlOe
Npn25p5dAgMBAAECggEAYB1AdrPbDgzfg1Gt0V309LWGX72xvhu5hsaoSBUXS5Vy
KjXmxZRzfWuawKhM/6g/a/0U5MxZpWBPhKMOqQa0g/WS4XiUEzv6DzJze80xd7jW
tW3/B+TWatMgXv7CWoT//CkV/O8j/GVuRB/JaCot6ThoLu+VzZHXstPya9qY26Vr
Evc6NF+MED/n2ciagBAJzSEG0L8Ry948Vbzz3yEu1p9Mdg31AVWu6/m4LfMWB7km
rtpSiPdZwqVCsTjGRb2T4hF3TmMgBC1+0meDMxd33xws1XaOoGwaqwdgMpIdowTK
DBonkT10De6cqjtVg/IqeZvmCZl4al4lkSzfGtwGRwKBgQDyx0kQw8D6PpMQ4YSk
cFgVgEwJ2ED2yVlOqnOpw+cFG+k9AlS9VuLOYDyuxsLCX4VdbGitmBnd70E3Zpnj
V74Tqu+nnUr/i8BDl8XG+EceBW+xpMgVIaMnKHbWa3RcIKU4CALbtDL0sl8l96Ch
NxjNje3E/E9hmAeFSBr6zsqPEwKBgQDTYTqzGMeBk7oNE0YonR8UxX1Ah5tSU9Eu
usY1vYGv3FoeJR1RexN7+o4rFxVN+cVy3Mwpml1ptPRZP1V3NGZCCObOaOU4Pplt
HjzhClBTeIsbmZ1Bq/MoRaXp4yykPkHaniR+d7/GjwnSrIzyupsWAe2fPfeIx1/K
VFg1eLcazwKBgQCuv/16wLy2I7ZuDzYPuwHcMCYLbAqO2K2c7xokF2vBhK6lCHmA
c/r7e9ASKeVkTadMcM0ELxhnZGD4BLU+LBkYRREOAC1MtgYlYSiuKGXgWR9lqeuP
MlAizoCDpIL0EVd7dmDATfvjoETWqmCHyoXi54c/JDHrWKgJKrao05J/2wKBgDxu
H4n0G5U/1oDGcdhKkwgtLZG1MwJmU/c4DlJuyxSrulfD5I3W0csv5lULVFvmfDxK
Q1PhfbMquHCLWrOpl1JpmRKJin555wL7EgyEFlLGs35AfGS589ofjz8+YxTRd6I4
c9Z0Ba+OVRCVo/YAwzWXd4d+/7VqykfdtRoUWMShAoGAVamX3xdVKVUH1vkbcW47
MZMvli5qeWFKkjNYzAIkHCOKgP+LcOhj2yywSliXZjBP3/AM4IyTf85rL7WWUHs9
M9V6iy4s0v95+NQ3gBhU8dqGZMlMAfHTdOYP5QZWKQQfF0iGHDH6faEsdBBWiqhI
laxSnUjUN5VMS/ViBExyBQs=
-----END PRIVATE KEY-----
51 changes: 0 additions & 51 deletions example1/req_build_test.go

This file was deleted.

22 changes: 0 additions & 22 deletions example1/req_header_global_test.go

This file was deleted.

26 changes: 0 additions & 26 deletions example1/req_option_test.go

This file was deleted.

23 changes: 0 additions & 23 deletions example1/trace_test.go

This file was deleted.

2 changes: 1 addition & 1 deletion examples/auth_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ import (
"strings"
"testing"

"github.com/go-resty/resty/v2"
"github.com/go-resty/resty/v3"
)


Expand Down
2 changes: 1 addition & 1 deletion examples/context_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ import (
"testing"
"time"

"github.com/go-resty/resty/v2"
"github.com/go-resty/resty/v3"
)

// test context: cancel multi
Expand Down
46 changes: 34 additions & 12 deletions examples/cookie_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -2,9 +2,10 @@ package examples

import (
"net/http"
"strings"
"testing"

"github.com/go-resty/resty/v2"
"github.com/go-resty/resty/v3"
)

func TestSendCookie(t *testing.T) {
Expand All @@ -15,7 +16,7 @@ func TestSendCookie(t *testing.T) {
Cookies struct{ Token string }
}{}

resp, err := resty.New().R().SetResult(&data).SetHeader("Cookie","token=1234").Get(ts.URL + "/cookie/count")
resp, err := resty.New().R().SetResult(&data).SetHeader("Cookie", "token=1234").Get(ts.URL + "/cookie/count")
if err != nil {
panic(err)
}
Expand All @@ -31,7 +32,7 @@ func TestSessionCookie(t *testing.T) {
defer ts.Close()

result := struct {
Cookies struct{
Cookies struct {
Count string
Name1 string
Name2 string
Expand All @@ -52,7 +53,7 @@ func TestSessionCookie(t *testing.T) {
session.SetCookie(cookie1).Get(ts.URL + "/cookie/count")

// 2. set cookie2 and get all cookies
resp, err := session.SetCookie(cookie2).SetResult(&result).Get(ts.URL+"/cookie/count")
resp, err := session.SetCookie(cookie2).SetResult(&result).Get(ts.URL + "/cookie/count")
if err != nil {
t.Fatal(err)
}
Expand Down Expand Up @@ -80,6 +81,10 @@ func TestSessionCookieWithClone(t *testing.T) {
url := ts.URL + "/cookie/count"
defer ts.Close()

client := resty.New()
req := client.R()

// set cookie
cookie1 := &http.Cookie{
Name: "name1",
Value: "value1",
Expand All @@ -89,26 +94,43 @@ func TestSessionCookieWithClone(t *testing.T) {
Name: "name2",
Value: "value2",
}
session := resty.New().R()

// 1. set cookie1
session.SetCookie(cookie1).Get(url)
client.SetCookie(cookie1)
req.SetCookie(cookie1).Get(url)

// 2. set cookie2 and get all cookies
resp, err := session.SetCookie(cookie2).Get(url)
resp, err := req.SetCookie(cookie2).Get(url)
if err != nil {
t.Fatal(err)
}
cookies := map[string]string{}

// 3. check cookies: client, response
respCookies := map[string]string{}
clientCookies := map[string]string{}
// cookies's type is `[]*http.Cookies`
for _, c := range resp.Cookies() {
if _, exists := cookies[c.Name]; exists {
if _, exists := respCookies[c.Name]; exists {
t.Fatal("duplicated cookie:", c.Name, c.Value)
}
cookies[c.Name] = c.Value
respCookies[c.Name] = c.Value
}
if resp.GetCookie("name1") != "value1" || resp.GetCookie("name2") != "value2" {
t.Fatalf("Failed to send valid cookie(%+v)", resp.Cookies())
for _, c := range client.Cookies {
if _, exists := clientCookies[c.Name]; exists {
t.Fatal("duplicated cookie:", c.Name, c.Value)
}
clientCookies[c.Name] = c.Value
}
if clientCookies["name1"] != "value1" || respCookies["count"] == "" {
t.Fatalf("bad cookie, respCookies=%+v, clientCookies=%+v", resp.Cookies(), client.Cookies)
}

// 4. check response body
body := resp.String()
if (!strings.Contains(body, `"name1"`) ||
!strings.Contains(body, `"name2"`) ||
!strings.Contains(body, `"count"`) ){
t.Fatalf("invalid response: %s", body)
}

}
Expand Down
41 changes: 41 additions & 0 deletions examples/debug_curl_test.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,41 @@
package examples

import (
"net/http"
"strings"
"testing"

"github.com/go-resty/resty/v3"
)


func TestDebugCurl(t *testing.T) {
ts := createHttpbinServer(0)
defer ts.Close()

req := resty.New().R().SetBody(MapString{
"name": "Alex",
}).SetCookies(
[]*http.Cookie{
{ Name: "count", Value: "1", },
},
).EnableCurl()

// 1. generate curl before request
curl_before_req := req.GetCurlCmd()
if !strings.Contains(curl_before_req, "Cookie: count=1") || !strings.Contains(curl_before_req, "curl -X GET") {
t.Fatal("bad curl:", curl_before_req)
}

// 2. send request
resp, err := req.Post(ts.URL+"/post",)
if err != nil {
t.Fatal(err)
}

// 3. generate curl after request
curl_after_req := resp.Request.GetCurlCmd()
if !strings.Contains(curl_after_req, "Cookie: count=1") || !strings.Contains(curl_after_req, "curl -X POST") {
t.Fatal("bad curl:", curl_after_req)
}
}

0 comments on commit fa336ff

Please sign in to comment.