欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

golang 實(shí)現(xiàn)Location跳轉(zhuǎn)方式

 更新時(shí)間:2021年05月01日 14:11:49   作者:九江Mgx  
這篇文章主要介紹了golang 實(shí)現(xiàn)Location跳轉(zhuǎn)方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧

golang作為互聯(lián)網(wǎng)時(shí)代的C語(yǔ)言,對(duì)網(wǎng)絡(luò)的支持是非常友好的,最近想做個(gè)短網(wǎng)址轉(zhuǎn)發(fā)使用,自然想到用Golang開發(fā)。

閑話少說,直接上源碼:

package main 
import (
 "fmt"
 "log"
 "net/http"
)
 
func login(w http.ResponseWriter, r *http.Request) {
 fmt.Print(fmt.Sprintf("%v+", r))
 w.Header().Set("Cache-Control", "must-revalidate, no-store")
 w.Header().Set("Content-Type", " text/html;charset=UTF-8")
 w.Header().Set("Location", "http://wap.baidu.com/")//跳轉(zhuǎn)地址設(shè)置
 w.WriteHeader(307)//關(guān)鍵在這里!
}
func main() {
 http.HandleFunc("/", login)              //設(shè)置訪問的路由
 err := http.ListenAndServe(":9090", nil) //設(shè)置監(jiān)聽的端口
 if err != nil {
  log.Fatal("ListenAndServe: ", err)
 }
}

補(bǔ)充:Go獲取Location重定向url

go本身不提供重定向的url,如果想要獲取,只能從源碼下手。

http.Get()接收到一個(gè)url后,會(huì)進(jìn)一步確認(rèn),是否包含重定向url,如果包含,自動(dòng)轉(zhuǎn)到新的url,我們需要做的就是在這之前截取重定向url。

進(jìn)入到http包中找到函數(shù):

//自用,保留url地址信息,頭部大寫進(jìn)行暴露
var RedirectMy string //此行源碼中沒有,為自己添加
 
func defaultCheckRedirect(req *Request, via []*Request) error {
 //自用,將url根據(jù)需求進(jìn)行組合
 RedirectMy = "http://"+req.URL.Host+req.URL.Path//此行源碼中沒有,為自己添加
 if len(via) >= 10 {
  return errors.New("stopped after 10 redirects")
 }
 return nil
}

從源碼中可以看出,go本身支持10次重定向,超過10次便會(huì)報(bào)錯(cuò)。

以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教。

相關(guān)文章

  • Go代碼檢查工具golangci-lint安裝使用方法

    Go代碼檢查工具golangci-lint安裝使用方法

    這篇文章主要給大家介紹了關(guān)于Go代碼檢查工具golangci-lint安裝使用的相關(guān)資料,golangci-lint用于許多開源項(xiàng)目中,比如kubernetes、Prometheus、TiDB等都使用golangci-lint用于代碼檢查,需要的朋友可以參考下
    2024-01-01
  • 一文教你如何在Golang中用好泛型

    一文教你如何在Golang中用好泛型

    golang的泛型已經(jīng)出來了一年多了,從提案被接受開始我就在關(guān)注泛型了,好用是好用,但問題也很多,所以本文就來教大家如何在Golang中用好泛型吧
    2023-07-07
  • golang?select?機(jī)制和超時(shí)問題

    golang?select?機(jī)制和超時(shí)問題

    golang 中的協(xié)程使用非常方便,但是協(xié)程什么時(shí)候結(jié)束是一個(gè)控制問題,可以用 select 配合使用,這篇文章主要介紹了golang?select?機(jī)制和超時(shí)問題,需要的朋友可以參考下
    2022-06-06
  • 深入了解Golang為什么需要超時(shí)控制

    深入了解Golang為什么需要超時(shí)控制

    本文將介紹為什么需要超時(shí)控制,然后詳細(xì)介紹Go語(yǔ)言中實(shí)現(xiàn)超時(shí)控制的方法,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以跟隨小編一起了解一下
    2023-05-05
  • Go語(yǔ)言之fo循環(huán)與條件判斷

    Go語(yǔ)言之fo循環(huán)與條件判斷

    這篇文章主要介紹Go語(yǔ)言之fo循環(huán)與條件判斷,for 循環(huán)是一個(gè)循環(huán)控制結(jié)構(gòu),可以執(zhí)行指定次數(shù)的循環(huán)。下面文章我們結(jié)合條件判斷,感興趣的朋友可以參考一下
    2021-10-10
  • Golang如何調(diào)用Python代碼詳解

    Golang如何調(diào)用Python代碼詳解

    這篇文章主要給大家介紹了關(guān)于Golang如何調(diào)用Python代碼的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2018-10-10
  • Go語(yǔ)言導(dǎo)出內(nèi)容到Excel的方法

    Go語(yǔ)言導(dǎo)出內(nèi)容到Excel的方法

    這篇文章主要介紹了Go語(yǔ)言導(dǎo)出內(nèi)容到Excel的方法,涉及Go語(yǔ)言操作excel的技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下
    2015-02-02
  • GO語(yǔ)言判斷一個(gè)網(wǎng)段是否屬于另一個(gè)網(wǎng)段的子網(wǎng)

    GO語(yǔ)言判斷一個(gè)網(wǎng)段是否屬于另一個(gè)網(wǎng)段的子網(wǎng)

    這篇文章主要介紹了GO語(yǔ)言判斷一個(gè)網(wǎng)段是否屬于另一個(gè)網(wǎng)段的子網(wǎng)的相關(guān)資料,內(nèi)容介紹詳細(xì),具有一定的參考價(jià)值,需要的朋友可任意參考一下
    2022-03-03
  • Golang-如何判斷一個(gè)?interface{}?的值是否為?nil

    Golang-如何判斷一個(gè)?interface{}?的值是否為?nil

    interface?的內(nèi)部實(shí)現(xiàn)包含了兩個(gè)字段,一個(gè)是?type,一個(gè)是?data,這篇文章主要介紹了Golang-如何判斷一個(gè)interface{}的值是否為nil,需要的朋友可以參考下
    2023-05-05
  • Go語(yǔ)言實(shí)現(xiàn)運(yùn)算符重載的方法詳解

    Go語(yǔ)言實(shí)現(xiàn)運(yùn)算符重載的方法詳解

    這篇文章主要為大家詳細(xì)介紹了如何利用Go語(yǔ)言實(shí)現(xiàn)運(yùn)算符重載的方法,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下
    2022-09-09

最新評(píng)論