Golang : Get final or effective URL with Request.URL example
There are times when we query a web server, it will re-direct internally and returns back with a slightly different URL structure. The returned URL is known as final URL or "effective url". In this following example, we will learn how to use https://golang.org/pkg/net/http/#Request.URL to retrieve the final URL.
package main
import (
"fmt"
"net/http"
)
func main() {
// without https (SSL)
originalURL := "//socketloop.com"
resp, err := http.Get(originalURL)
if err != nil {
fmt.Println(err)
}
// if there is any re-direction happening behind the scene
// the finalURL will be different
// in this case, there will be a re-direction to https (SSL) version
finalURL := resp.Request.URL.String()
fmt.Println("Original URL is : ", originalURL)
fmt.Println("Final URL is : ", finalURL)
}
Socketloop.com's NGINX web server will automatically redirect all non-https
request to https(SSL)
. Therefore, the final URL will be SSL-ed connection.
Original URL is : //socketloop.com
Final URL is : https://socketloop.com/
References :
https://www.socketloop.com/tutorials/golang-http-get-example
See also : Golang : Intercept and compare HTTP response code example
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
Tutorials
+7.8k Golang : Variadic function arguments sanity check example
+24.7k Golang : Create PDF file from HTML file
+21.5k Golang : Setting up/configure AWS credentials with official aws-sdk-go
+8.2k Golang : Add text to image and get OpenCV's X, Y co-ordinates example
+24.9k Golang : Storing cookies in http.CookieJar example
+6.5k Unix/Linux : How to fix CentOS yum duplicate glibc or device-mapper-libs dependency error?
+86.1k Golang : How to convert character to ASCII and back
+42.8k Golang : Get hardware information such as disk, memory and CPU usage
+11.6k Golang : Setup API server or gateway with Caddy and http.ListenAndServe() function example
+19.8k Golang : Check if os.Stdin input data is piped or from terminal
+14k Golang : How to pass map to html template and access the map's elements
+13.9k Elastic Search : Mapping date format and sort by date