gpt4 book ai didi

正确处理 slice 和字符串

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

我正在使用 goRequest http://parnurzeal.github.io/gorequest/对我需要与之交谈的服务器进程发出一些 HTTP 请求。身份验证过程是这样的;

发送带有身份验证 header 集的 GET 请求。没问题,但我需要从响应中获取 header 并使用返回值重新验证每个后续请求。

重新调整后的 HTTP header 如下所示。

Response headers
map[Location:[900767244] Content-Type:[application/xml] Date:[Fri, 18 Sep 2015 18:19:41 GMT] Server:[Apache] X-Frame-Options:[SAMEORIGIN] Set-Cookie:[JSESSIONID=D5C976F5646365FF030DBAD770DA774C; Path=/; Secure; HttpOnly]]

我需要获取该位置值,因为它是我以后的 session token 。如果我这样捕获它:

session, ok := response.Header["Location"]
if !ok {
fmt.Println("Did not receive a location header.")
}

fmt.Println("Session: ", session)

我可以得到它,但它是一个 slice 而不是一个字符串。我怎样才能将该值作为字符串获取,以便我可以将它弹出回我的请求 header 中?正如您在以下错误中看到的:

./login.go:133: cannot use session (type []string) as type string in argument to logoutRequest.Delete

非常感谢!克雷格

最佳答案

如果您想要一个值,请使用 Header's Get method

location := response.Header.Get("Location")

这也会为您规范化 header 名称,这样即使使用略有不同的大小写,您仍然可以获得一个值。

你只需要索引一个http.Header当您需要获得比第一个可能的值更多的值时直接赋值。如果您希望所有值都具有规范化的 header 名称,则可以使用 textproto.CanonicalMIMEHeaderKey

vals := response.Header[textproto.CanonicalMIMEHeaderKey(header)]

关于正确处理 slice 和字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32659191/

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