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

go語言fasthttp使用實例小結(jié)

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

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

package main
import (
    "fmt"
    "github.com/buaazp/fasthttprouter"
    "github.com/valyala/fasthttp"
)
// index 頁
func Index(ctx *fasthttp.RequestCtx) {
    ctx.Request.Header.Peek("userid")//獲取header頭參數(shù)
    fmt.Fprint(ctx, "Welcome")
}
// 簡單路由頁
func Hello(ctx *fasthttp.RequestCtx) {
    name:= ctx.UserValue("name").(string) //獲取路由參數(shù)name
    fmt.Fprintf(ctx, "hello")
}
// 獲取GET請求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的請求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)
    // 啟動web服務(wù)器,監(jiān)聽 0.0.0.0:80
    log.Fatal(fasthttp.ListenAndServe(":08", router.Handler))
}

二、Post和Get請求實例

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

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

相關(guān)文章

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

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

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

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

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

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

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

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

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

    Go語言的反射reflect使用大全

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

    一步步教你編寫可測試的Go語言代碼

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

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

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

    詳解golang開發(fā)中http請求redirect的問題

    這篇文章主要介紹了詳解golang開發(fā)中http請求redirect的問題,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(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言的典型特性,用于初始化變量。Go語言沒有任何具體構(gòu)造器,但我們能使用該特性去初始化變量。本文介紹不同類型構(gòu)造器的差異及其應(yīng)用場景
    2023-01-01
  • Golang數(shù)組的傳遞詳解

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

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

最新評論