亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

緩沖區問題不能在 http.NewRequest golang 的參數中使用 <type> 作為類型

緩沖區問題不能在 http.NewRequest golang 的參數中使用 <type> 作為類型

Go
慕娘9325324 2022-01-10 14:35:15
當我在 golang body 參數中的 http.NewRequest 中傳遞字符串時遇到問題。我得到的錯誤是:不能在 http.NewRequest 的參數中使用 req.Body(類型字符串)作為類型 io.Reader:字符串沒有實現 io.Reader(缺少讀取方法)類似地,還有其他用例需要 Buffer 作為輸入而不是特定類型或它的數組。例如,需要輸入時的 byte[] 是緩沖區。該錯誤是什么意思,解決它的方法是什么,并了解 golang 試圖強制執行的內容。編輯:這是我遇到問題的行,沒有找到任何參考。http.NewRequest(req.Method, req.Url, req.Body)http.NewRequest(req.Method, req.Url, strings.NewReader(req.Body)) 解決了這個問題。我也打算添加答案(作為僅供參考的問題)
查看完整描述

1 回答

?
達令說

TA貢獻1821條經驗 獲得超6個贊

此錯誤意味著該http.NewRequest方法將io.Reader接口作為其body參數:

func NewRequest(method, urlStr string, body io.Reader) (*Request, error)

這樣做是為了讓您可以輕松地傳遞文件、與服務器的連接、來自其他事物的響應對請求的響應。

“問題”是 astring沒有實現io.Reader接口,接口定義如下:

type Reader interface {
   Read(p []byte) (n int, err error)}

這不是一個大問題,您可以使用實現上述接口strings.Reader的封裝類型string。

func NewReader(s string) *Reader

提示:還有一個bytes.Reader類型可以用于[]byte作為參數傳遞的時間。


查看完整回答
反對 回復 2022-01-10
  • 1 回答
  • 0 關注
  • 203 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號