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

go語(yǔ)言fasthttp使用實(shí)例小結(jié)

 更新時(shí)間:2024年06月24日 14:29:19   作者:小雨喳  
fasthttp?是一個(gè)使用?Go?語(yǔ)言開(kāi)發(fā)的?HTTP?包,主打高性能,針對(duì)?HTTP?請(qǐng)求響應(yīng)流程中的?hot?path?代碼進(jìn)行了優(yōu)化,下面我們就來(lái)介紹go語(yǔ)言fasthttp使用實(shí)例小結(jié),感興趣的朋友跟隨小編一起看看吧

一、服務(wù)搭建和接收參數(shù)實(shí)例

package main
import (
    "fmt"
    "github.com/buaazp/fasthttprouter"
    "github.com/valyala/fasthttp"
)
// index 頁(yè)
func Index(ctx *fasthttp.RequestCtx) {
    ctx.Request.Header.Peek("userid")//獲取header頭參數(shù)
    fmt.Fprint(ctx, "Welcome")
}
// 簡(jiǎn)單路由頁(yè)
func Hello(ctx *fasthttp.RequestCtx) {
    name:= ctx.UserValue("name").(string) //獲取路由參數(shù)name
    fmt.Fprintf(ctx, "hello")
}
// 獲取GET請(qǐng)求json數(shù)據(jù)
func TestGet(ctx *fasthttp.RequestCtx) {
    values := ctx.QueryArgs() // 使用 ctx.QueryArgs() 方法
    fmt.Fprint(ctx, string(values.Peek("abc"))) // 不加string返回的byte數(shù)組
    fmt.Fprint(ctx, string(ctx.FormValue("abc"))) // 獲取表單數(shù)據(jù)
}
// 獲取post的請(qǐng)求json數(shù)據(jù)
func TestPost(ctx *fasthttp.RequestCtx) {
    postBody := ctx.PostBody() // 這兩行可以獲取PostBody數(shù)據(jù),文件上傳也有用
    fmt.Fprint(ctx, string(postBody))
    fmt.Fprint(ctx, string(ctx.FormValue("abc"))) // 獲取表單數(shù)據(jù)
}
func main() {
    // 創(chuàng)建路由
    router := fasthttprouter.New()
    // 不同的路由執(zhí)行不同的處理函數(shù)
    router.GET("/", Index)
    router.GET("/hello/:name", Hello)
    router.GET("/get", TestGet)
    // post方法
    router.POST("/post", TestPost)
    // 啟動(dòng)web服務(wù)器,監(jiān)聽(tīng) 0.0.0.0:80
    log.Fatal(fasthttp.ListenAndServe(":08", router.Handler))
}

二、Post和Get請(qǐng)求實(shí)例

package main
import (
    "fmt"
    "github.com/valyala/fasthttp"
)
func main() {
	req := &fasthttp.Request{} //相當(dāng)于獲取一個(gè)對(duì)象
	req.SetRequestURI("www.baidu.com")//設(shè)置請(qǐng)求的url
	bytes, err := json.Marshal(data)//data是請(qǐng)求數(shù)據(jù)
	if err != nil {
		return nil, err
	}
	req.SetBody(bytes)//存儲(chǔ)轉(zhuǎn)換好的數(shù)據(jù)
	req.Header.SetContentType("application/json")//設(shè)置header頭信息
	req.Header.SetMethod(method)//設(shè)置請(qǐng)求方法
	resp := &fasthttp.Response{}//相應(yīng)結(jié)果的對(duì)象
	client := &fasthttp.Client{}//發(fā)起請(qǐng)求的對(duì)象
	if err := client.Do(req, resp); err != nil {
		return nil, err
	}
	var param model.Data //定義好的結(jié)構(gòu)體用來(lái)存放相應(yīng)數(shù)據(jù)
	err = json.Unmarshal(resp.Body(), &param)
	if err != nil {
		return nil, err
    }
	return param, nil
}

到此這篇關(guān)于go語(yǔ)言fasthttp使用實(shí)例的文章就介紹到這了,更多相關(guān)Go fasthttp內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • 幾個(gè)小技巧幫你實(shí)現(xiàn)Golang永久阻塞

    幾個(gè)小技巧幫你實(shí)現(xiàn)Golang永久阻塞

    Go 的運(yùn)行時(shí)的當(dāng)前設(shè)計(jì),假定程序員自己負(fù)責(zé)檢測(cè)何時(shí)終止一個(gè) goroutine 以及何時(shí)終止該程序。有時(shí)候我們需要的是使程序阻塞在這一行,本文就來(lái)詳細(xì)的介紹一下,感興趣的可以了解一下
    2021-12-12
  • 在Go中動(dòng)態(tài)替換SQL查詢中的日期參數(shù)的完整步驟

    在Go中動(dòng)態(tài)替換SQL查詢中的日期參數(shù)的完整步驟

    在處理數(shù)據(jù)庫(kù)查詢時(shí),經(jīng)常需要根據(jù)不同的輸入條件動(dòng)態(tài)地構(gòu)造SQL語(yǔ)句,尤其是在涉及日期范圍的查詢中,能夠根據(jù)實(shí)際需求調(diào)整查詢的起始和結(jié)束日期顯得尤為重要,在本文中,我將介紹如何在Go語(yǔ)言中實(shí)現(xiàn)動(dòng)態(tài)替換SQL查詢中的日期參數(shù),需要的朋友可以參考下
    2024-11-11
  • Go語(yǔ)言設(shè)計(jì)模式之結(jié)構(gòu)型模式

    Go語(yǔ)言設(shè)計(jì)模式之結(jié)構(gòu)型模式

    本文主要聚焦在結(jié)構(gòu)型模式(Structural Pattern)上,其主要思想是將多個(gè)對(duì)象組裝成較大的結(jié)構(gòu),并同時(shí)保持結(jié)構(gòu)的靈活和高效,從程序的結(jié)構(gòu)上解決模塊之間的耦合問(wèn)題
    2021-06-06
  • golang1.21泛型函數(shù)全面講解

    golang1.21泛型函數(shù)全面講解

    在Go編程語(yǔ)言中,泛型一直是一個(gè)備受期待的特性,隨著Go?1.21的發(fā)布,本文旨在提供Go?1.21中泛型的詳細(xì)探索,闡明它們的優(yōu)點(diǎn)、語(yǔ)法、實(shí)現(xiàn)和最佳實(shí)踐,希望對(duì)大家有所幫助
    2023-09-09
  • Go語(yǔ)言的反射reflect使用大全

    Go語(yǔ)言的反射reflect使用大全

    Go語(yǔ)言中reflect包提供了運(yùn)行時(shí)反射的功能,本文主要介紹了Go語(yǔ)言的反射reflect使用,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2024-08-08
  • 一步步教你編寫可測(cè)試的Go語(yǔ)言代碼

    一步步教你編寫可測(cè)試的Go語(yǔ)言代碼

    相信每位編程開(kāi)發(fā)者們應(yīng)該都知道,Golang作為一門標(biāo)榜工程化的語(yǔ)言,提供了非常簡(jiǎn)便、實(shí)用的編寫單元測(cè)試的能力。本文通過(guò)Golang源碼包中的用法,來(lái)學(xué)習(xí)在實(shí)際項(xiàng)目中如何編寫可測(cè)試的Go代碼。有需要的朋友們可以參考借鑒,下面跟著小編一起去學(xué)習(xí)學(xué)習(xí)吧。
    2016-11-11
  • 詳解Go語(yǔ)言如何利用高階函數(shù)寫出優(yōu)雅的代碼

    詳解Go語(yǔ)言如何利用高階函數(shù)寫出優(yōu)雅的代碼

    高階函數(shù)(Hiher-order?Function)定義為:滿足下列條件之一的函數(shù):接收一個(gè)或多個(gè)函數(shù)作為參數(shù);返回值是一個(gè)函數(shù)。本文為大家介紹了如何利用高階函數(shù)寫出優(yōu)雅的代碼,希望對(duì)大家有所幫助
    2023-01-01
  • 詳解golang開(kāi)發(fā)中http請(qǐng)求redirect的問(wèn)題

    詳解golang開(kāi)發(fā)中http請(qǐng)求redirect的問(wèn)題

    這篇文章主要介紹了詳解golang開(kāi)發(fā)中http請(qǐng)求redirect的問(wèn)題,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2020-10-10
  • Golang創(chuàng)建構(gòu)造函數(shù)的方法超詳細(xì)講解

    Golang創(chuàng)建構(gòu)造函數(shù)的方法超詳細(xì)講解

    構(gòu)造器一般面向?qū)ο笳Z(yǔ)言的典型特性,用于初始化變量。Go語(yǔ)言沒(méi)有任何具體構(gòu)造器,但我們能使用該特性去初始化變量。本文介紹不同類型構(gòu)造器的差異及其應(yīng)用場(chǎng)景
    2023-01-01
  • Golang數(shù)組的傳遞詳解

    Golang數(shù)組的傳遞詳解

    今天小編就為大家分享一篇關(guān)于Golang數(shù)組的傳遞詳解,小編覺(jué)得內(nèi)容挺不錯(cuò)的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來(lái)看看吧
    2019-03-03

最新評(píng)論