Errors from net/http are wrapped in an url.Error to contain information about the request that failed. You can unwrap it with an assertion or type switch;
_, err := http.DefaultClient.Do(r) if urlErr, ok := err.(*url.Error); ok { log.Println(urlErr.Err == context.Canceled) // “true", in your example } //jb On 8 Nov 2017, at 13:11, Glen Huang <hey....@gmail.com<mailto:hey....@gmail.com>> wrote: Yes. Thanks for point it out, and maybe I should've mentioned that. After posing that on SO, I have a gut feeling that it should be the intuitive way to check that. I was hoping a go author could see the question here and maybe offer some rationale why that's not the case. Sorry if it's considered spamming. On Wednesday, November 8, 2017 at 8:07:51 PM UTC+8, Ain wrote: I noticed that OP has also posted this question to SO: https://stackoverflow.com/questions/47179024/how-to-check-if-a-request-was-cancelled ain kolmapäev, 8. november 2017 14:02.13 UTC+2 kirjutas Glen Huang: I have this simple code in which I try to check if the request was cancelled. But surprisingly, it prints false instead of true in go 1.9. I wonder what's the correct way to check that? package main import ( "context" "log" "net/http" ) func main() { r, _ := http.NewRequest("GET", "http://example.com<http://example.com/>", nil) ctx := context.Background() ctx, cancel := context.WithCancel(ctx) r = r.WithContext(ctx) ch := make(chan bool) go func() { _, err := http.DefaultClient.Do(r) log.Println(err == context.Canceled) ch <- true }() cancel() <-ch } -- You received this message because you are subscribed to the Google Groups "golang-nuts" group. To unsubscribe from this group and stop receiving emails from it, send an email to golang-nuts+unsubscr...@googlegroups.com<mailto:golang-nuts+unsubscr...@googlegroups.com>. For more options, visit https://groups.google.com/d/optout. -- You received this message because you are subscribed to the Google Groups "golang-nuts" group. To unsubscribe from this group and stop receiving emails from it, send an email to golang-nuts+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/d/optout.