• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

jeffotoni / quick / 233

07 Mar 2025 07:31PM UTC coverage: 56.021% (-0.4%) from 56.44%
233

push

circleci

jeffotoni
Merge remote-tracking branch 'origin/example/http'

0 of 131 new or added lines in 11 files covered. (0.0%)

4 existing lines in 4 files now uncovered.

2191 of 3911 relevant lines covered (56.02%)

2552.56 hits per line

Source File
Press 'n' to go to next uncovered line, 'b' for previous

0.0
/example/quick.http.client/postform/main.go
1
package main
2

3
import (
4
        "encoding/json"
5
        "fmt"
6
        "log"
7
        "net/url"
8
        "time"
9

10
        "github.com/jeffotoni/quick"
11
        "github.com/jeffotoni/quick/http/client"
12
)
13

14
// curl -X POST http://localhost:3000/postform \
15
//      -H "Content-Type: application/x-www-form-urlencoded" \
16
//      -d "username=quick_user&password=supersecret"
17

18
func main() {
×
19
        q := quick.New()
×
20

×
21
        // Define a route to process POST form-data
×
22
        q.Post("/postform", func(c *quick.Ctx) error {
×
NEW
23
                // Get form values
×
24
                form := c.FormValues()
×
NEW
25

×
NEW
26
                // Log received form data for debugging
×
NEW
27
                log.Println("Received form data:", form)
×
NEW
28

×
29
                return c.JSON(map[string]any{
×
30
                        "message": "Received form data",
×
31
                        "data":    form,
×
32
                })
×
33
        })
×
34

35
        // Start the server BEFORE making the request
NEW
36
        fmt.Println("Quick server running at http://localhost:3000")
×
NEW
37
        if err := q.Listen(":3000"); err != nil {
×
NEW
38
                log.Fatalf("Failed to start Quick server: %v", err)
×
NEW
39
        }
×
40

41
        // Criando um cliente HTTP antes de chamar PostForm
42
        cClient := client.New(
×
43
                client.WithTimeout(5*time.Second), // Define um timeout de 5s
×
44
                client.WithHeaders(map[string]string{
×
45
                        "Content-Type": "application/x-www-form-urlencoded", // Tipo correto para forms
×
46
                }),
×
47
        )
×
48

×
NEW
49
        // Verifica se o cliente foi inicializado corretamente
×
50
        if cClient == nil {
×
51
                log.Fatal("Erro: cliente HTTP não foi inicializado corretamente")
×
52
        }
×
53

54
        // Declara os valores do formulário
55
        formData := url.Values{}
×
56
        formData.Set("username", "quick_user")
×
57
        formData.Set("password", "supersecret")
×
58

×
NEW
59
        // Envia uma requisição POST com form-data
×
60
        resp, err := cClient.PostForm("http://localhost:3000/postform", formData)
×
61
        if err != nil {
×
62
                log.Fatalf("PostForm request with retry failed: %v", err)
×
63
        }
×
64

65
        // Verifica se a resposta é válida
66
        if resp == nil || resp.Body == nil {
×
67
                log.Fatal("Erro: resposta vazia ou inválida")
×
68
        }
×
69

70
        // Decodifica a resposta JSON
71
        var result map[string]any
×
72
        if err := json.Unmarshal(resp.Body, &result); err != nil {
×
73
                log.Fatal(err)
×
74
        }
×
75

76
        // Exibe a resposta no terminal
UNCOV
77
        fmt.Println("POST response:", result)
×
78
}
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc