Golang : Intercept and compare HTTP response code example




Problem :

You want to query a website and intercept the response code. You also want to compare the response code to a built in HTTP response codes in net/http package. How to do that?

Solution :

Use the http.Head() function to query a website. The return codes can be compared with the == operator.

For example :

 package main

 import (
 "fmt"
 "net/http"
 "os"
 )

 func main() {
 url := "https://www.socketloop.com"

 response, err := http.Head(url)

 if err != nil {
 fmt.Println(err)
 os.Exit(1)
 }

 if response.StatusCode != http.StatusOK { // <------- here !
 fmt.Printf("%s returns non-200 status code. \n", url)
 fmt.Printf("The reply : %v \n", response.StatusCode)
 } else {
 fmt.Println(response)
 }
 }

Happy coding!

References :

  StatusContinue = 100  // access with http.StatusContinue
  StatusSwitchingProtocols = 101

  StatusOK = 200
  StatusCreated = 201
  StatusAccepted = 202
  StatusNonAuthoritativeInfo = 203
  StatusNoContent = 204
  StatusResetContent = 205
  StatusPartialContent = 206

  StatusMultipleChoices = 300
  StatusMovedPermanently  = 301
  StatusFound = 302
  StatusSeeOther = 303
  StatusNotModified = 304
  StatusUseProxy = 305
  StatusTemporaryRedirect = 307

  StatusBadRequest = 400
  StatusUnauthorized = 401
  StatusPaymentRequired = 402
  StatusForbidden = 403
  StatusNotFound = 404
  StatusMethodNotAllowed = 405
  StatusNotAcceptable = 406
  StatusProxyAuthRequired = 407
  StatusRequestTimeout = 408
  StatusConflict = 409
  StatusGone = 410
  StatusLengthRequired = 411
  StatusPreconditionFailed = 412
  StatusRequestEntityTooLarge = 413
  StatusRequestURITooLong = 414
  StatusUnsupportedMediaType = 415
  StatusRequestedRangeNotSatisfiable = 416
  StatusExpectationFailed = 417
  StatusTeapot = 418

  StatusInternalServerError = 500
  StatusNotImplemented = 501
  StatusBadGateway = 502
  StatusServiceUnavailable = 503
  StatusGatewayTimeout = 504
  StatusHTTPVersionNotSupported = 505

https://www.socketloop.com/tutorials/golang-how-to-return-http-status-code

  See also : Golang : How to return HTTP status code?





By Adam Ng

IF you gain some knowledge or the information here solved your programming problem. Please consider donating to the less fortunate or some charities that you like. Apart from donation, planting trees, volunteering or reducing your carbon footprint will be great too.


Advertisement