tsnet-http-client.go 688 B

1234567891011121314151617181920212223242526272829303132333435363738394041424344
  1. // Copyright (c) Tailscale Inc & AUTHORS
  2. // SPDX-License-Identifier: BSD-3-Clause
  3. // The tshello server demonstrates how to use Tailscale as a library.
  4. package main
  5. import (
  6. "flag"
  7. "fmt"
  8. "log"
  9. "os"
  10. "path/filepath"
  11. "tailscale.com/tsnet"
  12. )
  13. func main() {
  14. flag.Usage = func() {
  15. fmt.Fprintf(os.Stderr, "Usage: %s <url in tailnet>\n", filepath.Base(os.Args[0]))
  16. os.Exit(2)
  17. }
  18. flag.Parse()
  19. if flag.NArg() != 1 {
  20. flag.Usage()
  21. }
  22. tailnetURL := flag.Arg(0)
  23. s := new(tsnet.Server)
  24. defer s.Close()
  25. if err := s.Start(); err != nil {
  26. log.Fatal(err)
  27. }
  28. cli := s.HTTPClient()
  29. resp, err := cli.Get(tailnetURL)
  30. if err != nil {
  31. log.Fatal(err)
  32. }
  33. resp.Write(os.Stdout)
  34. }