github.com/cavaliergopher/grab/v3@v3.0.1/example_request_test.go (about) 1 package grab 2 3 import ( 4 "context" 5 "crypto/sha256" 6 "encoding/hex" 7 "fmt" 8 "time" 9 ) 10 11 func ExampleRequest_WithContext() { 12 // create context with a 100ms timeout 13 ctx, cancel := context.WithTimeout(context.Background(), 100*time.Millisecond) 14 defer cancel() 15 16 // create download request with context 17 req, err := NewRequest("", "http://example.com/example.zip") 18 if err != nil { 19 panic(err) 20 } 21 req = req.WithContext(ctx) 22 23 // send download request 24 resp := DefaultClient.Do(req) 25 if err := resp.Err(); err != nil { 26 fmt.Println("error: request cancelled") 27 } 28 29 // Output: 30 // error: request cancelled 31 } 32 33 func ExampleRequest_SetChecksum() { 34 // create download request 35 req, err := NewRequest("", "http://example.com/example.zip") 36 if err != nil { 37 panic(err) 38 } 39 40 // set request checksum 41 sum, err := hex.DecodeString("33daf4c03f86120fdfdc66bddf6bfff4661c7ca11c5da473e537f4d69b470e57") 42 if err != nil { 43 panic(err) 44 } 45 req.SetChecksum(sha256.New(), sum, true) 46 47 // download and validate file 48 resp := DefaultClient.Do(req) 49 if err := resp.Err(); err != nil { 50 panic(err) 51 } 52 }