func main() { // Create a new client cli := gentleman.New() // Define the server url (must be first) cli.Use(url.URL("http://httpbin.org")) // Create a new multiplexer based on multiple matchers mx := mux.If(mux.Method("GET"), mux.Host("httpbin.org")) // Attach a custom plugin on the multiplexer that will be executed if the matchers passes mx.Use(url.Path("/headers")) // Attach the multiplexer on the main client cli.Use(mx) // Perform the request res, err := cli.Request().Send() if err != nil { fmt.Printf("Request error: %s\n", err) return } if !res.Ok { fmt.Printf("Invalid server response: %d\n", res.StatusCode) return } fmt.Printf("Status: %d\n", res.StatusCode) fmt.Printf("Body: %s", res.String()) }
func main() { // Create a new client cli := gentleman.New() // Define the base URL cli.Use(url.BaseURL("http://httpbin.org")) // Define the path with dynamic params // Use the :<name> notation cli.Use(url.Path("/:action/:subaction")) // Define the path params to replace cli.Use(url.Param("action", "delay")) cli.Use(url.Param("subaction", "1")) // Perform the request res, err := cli.Request().Send() if err != nil { fmt.Printf("Request error: %s\n", err) return } if !res.Ok { fmt.Printf("Invalid server response: %d\n", res.StatusCode) return } fmt.Printf("Status: %d\n", res.StatusCode) fmt.Printf("Body: %s", res.String()) }
// Path defines the URL base path for client requests. func (c *Client) Path(path string) *Client { c.Use(url.Path(path)) return c }