req icon indicating copy to clipboard operation
req copied to clipboard

对request.RawURL 字段的疑问

Open N0el4kLs opened this issue 1 year ago • 1 comments

大佬你好,

Request.RawURL 的值是直接来自于 Send() 方法传入的地址。如果使用 SetQueryString() 等方法设置查询字符,并不会影响到 RawURL 字段。

这里想请教大佬两个问题:

  1. RawURL 这个字段表示的是什么意思?
  2. 如果我想要获取到包括 query 参数在内的完整请求 URL 地址,我应该怎么做?

N0el4kLs avatar Jun 29 '24 11:06 N0el4kLs

RawURL 就是发请求是直接传入的url字符串, 比如 Get(url) 中的url。

可以用Client中间件获取完整URL

package main

import (
	"fmt"

	"github.com/imroc/req/v3"
)

func main() {
	c := req.C().
		WrapRoundTripFunc(func(rt req.RoundTripper) req.RoundTripFunc {
			return func(req *req.Request) (resp *req.Response, err error) {
				fmt.Println(req.URL.String())
				return rt.RoundTrip(req)
			}
		})

	c.R().SetQueryParam("test", "1").MustGet("http://httpbin.org/get")
}

imroc avatar Jun 30 '24 08:06 imroc

谢谢大佬解答疑惑🙏。ps:主要是遇到的好多RawURL字段都表示完整请求地址,习惯了

N0el4kLs avatar Jul 10 '24 12:07 N0el4kLs