當我在 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
作為參數傳遞的時間。
- 1 回答
- 0 關注
- 203 瀏覽
添加回答
舉報
0/150
提交
取消