guonaihong/gout

怎么上传文件流?

linbaozhong opened this issue · 3 comments

前端上传文件流,怎么用gout将此文件流直接转发到其它URL

伪代码如下:

func handler(c *gin.Context) {
    r := c.Request.Body //假如这里用的gin的Context
    err := gout.GET(url).SetBody(r).Do()
    if err != nil {
        // 返回业务错误码和错误消息
    }
}

你这需求听起来像透明转发。如果不考虑https,也可以这边写。

func Transport(from *gin.Context, addr string, opts ...Option) error {

	req, err := http.NewRequest(from.Request.Method, newPath, from.Request.Body)
	if err != nil {
		return err
	}

	req.Header = from.Request.Header.Clone()

	resp, err := http.DefaultClient.Do(req)
	if err != nil {
		return err
	}

	defer resp.Body.Close()
}

这个issue没反馈,暂时关闭了。有问题可重新打开。