Documentation
¶
Overview ¶
Package reqhtml contains utilities for sending and receiving x/net/html objects.
Index ¶
Examples ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func Body ¶
Body sets the requests.Builder's request body to the HTML document. It also sets ContentType to "text/html" if it is not otherwise set.
Example ¶
package main import ( "context" "fmt" "net/http/httputil" "github.com/carlmjohnson/requests" "github.com/carlmjohnson/requests/reqhtml" "golang.org/x/net/html" ) func main() { link := html.Node{ Type: html.ElementNode, Data: "a", Attr: []html.Attribute{ {Key: "href", Val: "http://example.com"}, }, } text := html.Node{ Type: html.TextNode, Data: "Hello, World!", } link.AppendChild(&text) req, err := requests. URL("http://example.com"). Config(reqhtml.Body(&link)). Request(context.Background()) if err != nil { panic(err) } b, err := httputil.DumpRequest(req, true) if err != nil { panic(err) } fmt.Printf("%q\n", b) }
Output: "POST / HTTP/1.1\r\nHost: example.com\r\nContext-Type: text/html\r\n\r\n<a href=\"http://example.com\">Hello, World!</a>"
func To ¶
func To(n *html.Node) requests.ResponseHandler
To decodes a response as an html document.
Example ¶
package main import ( "context" "fmt" "github.com/carlmjohnson/requests" "github.com/carlmjohnson/requests/reqhtml" "golang.org/x/net/html" "golang.org/x/net/html/atom" ) func main() { var doc html.Node err := requests. URL("http://example.com"). Handle(reqhtml.To(&doc)). Fetch(context.Background()) if err != nil { fmt.Println("could not connect to example.com:", err) } var f func(*html.Node) f = func(n *html.Node) { if n.DataAtom == atom.A { for _, attr := range n.Attr { if attr.Key == "href" { fmt.Println("link:", attr.Val) } } } for c := n.FirstChild; c != nil; c = c.NextSibling { f(c) } } f(&doc) }
Output: link: https://www.iana.org/domains/example
Types ¶
This section is empty.
Click to show internal directories.
Click to hide internal directories.