激情久久久_欧美视频区_成人av免费_不卡视频一二三区_欧美精品在欧美一区二区少妇_欧美一区二区三区的

腳本之家,腳本語言編程技術(shù)及教程分享平臺!
分類導(dǎo)航

Python|VBS|Ruby|Lua|perl|VBA|Golang|PowerShell|Erlang|autoit|Dos|bat|

服務(wù)器之家 - 腳本之家 - Golang - golang復(fù)用http.request.body的方法示例

golang復(fù)用http.request.body的方法示例

2020-05-20 10:43ppmoon Golang

這篇文章主要給大家介紹了關(guān)于golang復(fù)用http.request.body的相關(guān)資料,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧

問題及場景

業(yè)務(wù)當(dāng)中有需要分發(fā)http.request.body的場景。比如微信回調(diào)消息只能指定一個地址,所以期望可以復(fù)制一份消息發(fā)給其他服務(wù)。由服務(wù)B和接收微信回調(diào)的服務(wù)A一起處理微信回調(diào)信息。

本文將詳細介紹golang復(fù)用http.request.body的相關(guān)內(nèi)容,分享出來供大家參考學(xué)習(xí),下面話不多說了,來一起看看詳細的介紹吧

解決思路

最開始考慮的是直接轉(zhuǎn)發(fā)http.request。使用ReverseProxy直接將http.request由服務(wù)A轉(zhuǎn)發(fā)給服務(wù)B。但是微信涉及到驗證等問題,完全調(diào)整好非常麻煩。所以轉(zhuǎn)換思路,打算將http.request.body的內(nèi)容直接post給服務(wù)B。

可是http.request是readcloser。我們將http.request readAll的時候講無法再次讀取http.request里面的信息。

如何才能將http.request.body復(fù)制使用呢?

其中c表示的是http的上下文

?
1
2
3
4
5
6
7
// 把request的內(nèi)容讀取出來
var bodyBytes []byte
if c.Request.Body != nil {
 bodyBytes, _ = ioutil.ReadAll(c.Request.Body)
}
// 把剛剛讀出來的再寫進去
c.Request.Body = ioutil.NopCloser(bytes.NewBuffer(bodyBytes))

1.我們先將body從http.request里面讀取出來,保存到一個變量里面。

2.然后再將變量里面的數(shù)據(jù)使用ioutil.NopCloser方法寫回到http.request里面。

https://golang.org/pkg/io/ioutil/#NopCloser

NopCloser returns a ReadCloser with a no-op Close method wrapping the provided Reader r.

NopCloser用一個無操作的Close方法包裝Reader r返回一個ReadCloser接口。

這樣我們就可以再次使用c.request來進行處理了。

總結(jié)

以上就是這篇文章的全部內(nèi)容了,希望本文的內(nèi)容對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,如果有疑問大家可以留言交流,謝謝大家對服務(wù)器之家的支持。

原文鏈接:https://studygolang.com/articles/15641

延伸 · 閱讀

精彩推薦
  • Golanggolang如何使用struct的tag屬性的詳細介紹

    golang如何使用struct的tag屬性的詳細介紹

    這篇文章主要介紹了golang如何使用struct的tag屬性的詳細介紹,從例子說起,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看...

    Go語言中文網(wǎng)11352020-05-21
  • GolangGolang通脈之?dāng)?shù)據(jù)類型詳情

    Golang通脈之?dāng)?shù)據(jù)類型詳情

    這篇文章主要介紹了Golang通脈之?dāng)?shù)據(jù)類型,在編程語言中標識符就是定義的具有某種意義的詞,比如變量名、常量名、函數(shù)名等等,Go語言中標識符允許由...

    4272021-11-24
  • GolangGolang中Bit數(shù)組的實現(xiàn)方式

    Golang中Bit數(shù)組的實現(xiàn)方式

    這篇文章主要介紹了Golang中Bit數(shù)組的實現(xiàn)方式,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧...

    天易獨尊11682021-06-09
  • Golanggolang json.Marshal 特殊html字符被轉(zhuǎn)義的解決方法

    golang json.Marshal 特殊html字符被轉(zhuǎn)義的解決方法

    今天小編就為大家分享一篇golang json.Marshal 特殊html字符被轉(zhuǎn)義的解決方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧 ...

    李浩的life12792020-05-27
  • Golanggolang的httpserver優(yōu)雅重啟方法詳解

    golang的httpserver優(yōu)雅重啟方法詳解

    這篇文章主要給大家介紹了關(guān)于golang的httpserver優(yōu)雅重啟的相關(guān)資料,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,...

    helight2992020-05-14
  • Golanggo日志系統(tǒng)logrus顯示文件和行號的操作

    go日志系統(tǒng)logrus顯示文件和行號的操作

    這篇文章主要介紹了go日志系統(tǒng)logrus顯示文件和行號的操作,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧...

    SmallQinYan12302021-02-02
  • Golanggolang 通過ssh代理連接mysql的操作

    golang 通過ssh代理連接mysql的操作

    這篇文章主要介紹了golang 通過ssh代理連接mysql的操作,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧...

    a165861639710342021-03-08
  • Golanggo語言制作端口掃描器

    go語言制作端口掃描器

    本文給大家分享的是使用go語言編寫的TCP端口掃描器,可以選擇IP范圍,掃描的端口,以及多線程,有需要的小伙伴可以參考下。 ...

    腳本之家3642020-04-25
主站蜘蛛池模板: 国产午夜精品久久久久久久蜜臀 | 久久亚洲精品视频 | 7777在线视频免费播放 | 国产精品久久久久久久久久久天堂 | 性欧美久久 | 国产在线欧美日韩 | 亚洲网站免费 | 久久经典国产视频 | 请播放一级毛片 | 高清中文字幕在线 | 久久精国 | 精品久久999| 小视频在线看 | 国产一区二区三区影视 | 第一区免费在线观看 | 日韩av有码在线 | 欧美一区二区三区四区夜夜大片 | 久久综合一区 | 久久久久久久免费视频 | 欧美一级片 在线播放 | 国产成人综合在线 | 日本一级毛片在线播放 | 九九看片| av日韩一区二区三区 | 国产电影精品久久 | 国产精品入口夜色视频大尺度 | 91一区二区三区久久久久国产乱 | 国产亚洲精品久久777777 | 国产激情网 | 久久精品视频1 | 中国3xxxx| 啪啪激情 | 日日爱夜夜操 | 久久久久久久久久久亚洲 | 久久影院午夜 | 毛片免费视频在线观看 | av视在线 | 国产一级www | 性爱免费视频 | 欧美一级毛片欧美一级成人毛片 | 欧美wwwwww|