gpt4 book ai didi

http NewRequest 得到意外的字符

转载 作者:数据小太阳 更新时间:2023-10-29 03:14:28 25 4
gpt4 key购买 nike

我尝试用这段代码解析一个页面:

client := &http.Client{}
profile := getEpiURL(login)

log.Print("Fetch " + profile)
req, err := http.NewRequest("GET", profile, nil)
if err != nil {
log.Fatal(err)
}
req.AddCookie(cookieSessionIntra)
body, _ := httputil.DumpRequestOut(req, true)

以此作为 getEpiURL 函数:

func getEpiURL(login string) (url string) {
url = "https://********/user/" + login + "/?format=json"
return
}

当我查看输出时,profile 变量是好的,但在 Request 中它似乎显然是错误的...

2016/11/24 12:53:53 Fetch https://********/user/le****in-vi**rd@e*******/?format=json

然后请求的调试打印 me :

GET /user/%00l%*****0o%*00.%00c***0-%00v%00i%0*a%00r%00d%00@%00e%00i%00t%00e%00c%0***0.%0***00/?format=json HTTP/1.1 Host: ****** User-Agent: Go-http-client/1.1 Cookie: PHPSESSID=********* Accept-Encoding: gzip

最佳答案

我认为您的原始字符串以某种方式包含 NUL 字符。在 the playground 试试这个:

func main() {
req, err := http.NewRequest("GET", "https://some/normal/path", nil)
if err != nil {
log.Fatal(err)
}
body, _ := httputil.DumpRequestOut(req, true)
fmt.Printf("Hello, playground, %q", body)
}

你会得到:

"GET /normal/path HTTP/1.1\r\nHost: some...

现在try it with a string in which you inserted NUL characters :

req, err := http.NewRequest("GET", "https://some/\000n\000o\000rmal/path", nil)

...

"GET /%00n%00o%00rmal/path HTTP/1.1\r\nHost: some...

不太确定您的字符串最终是如何包含这些内容的。阅读更多关于 percent encoding 的信息.

关于http NewRequest 得到意外的字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40786118/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com