gpt4 book ai didi

golang ParseQuery url 给我错误的输出

转载 作者:IT王子 更新时间:2023-10-29 01:40:46 24 4
gpt4 key购买 nike

我有以下代码:

func init() {
today := time.Now()

// If ENDPOINT is empty, It'll use this hardcoded endpoint. The ENDPOINT variable should not contain any text after "ModifiedDate gt". The actual date is currentDay-1
if ENDPOINT == "" {
ENDPOINT = "http://localhost:8000/Contacts/Export/?$select=Firstname,Lastname,Email,SubaccountId&$filter=EEA eq '' and ModifiedDate gt"
}

// Append CurrentDay-1 in YYY`enter code here`Y-MM-DDTHH:MM:SSZ format.
// The time is NOT in UTC. It's the local time of the machine on which lambda function was running
ENDPOINT = fmt.Sprintf("%s %s", ENDPOINT, today.AddDate(0, 0, -1).Format("2006-01-02T15:04:05Z"))

var err error
// parse the url
PARSED_ENDPOINT, err = url.Parse(ENDPOINT)
if err != nil {
log.Fatalln("Invalid $ENDPOINT", err)
}

// parse the query parameters
parsedQueryParams, err := url.ParseQuery(PARSED_ENDPOINT.RawQuery)
if err != nil {
log.Fatalln("error in parsing query parameters", err)
}

// URLEncode query parameters
PARSED_ENDPOINT.RawQuery = parsedQueryParams.Encode()
}

当我输出 URL 时,我得到:

'http://localhost:8000/Contacts/Export/?%24filter=EEA+eq+%27%27+and+ModifiedDate+gt+2018-10-22T08%3A45%3A45Z&%24select=Email%2CFirstname%2CLastname%2CSubaccountId%2CEEA'

如何返回:

'http://localhost:8000/Contacts/Export/?$filter=EEA%20eq%20%27%27%20and%20ModifiedDate%20gt%202018-10-22T00:00:00Z&$select=Email,Firstname,Lastname,SubaccountId,EEA'

非常感谢任何建议

最佳答案

Golang 提供 url 包来解决这个问题,并将带有键值的查询字符串传递给浏览器,并在对字符串进行编码后进行相应的解析,这将解决特殊字符问题:

package main

import (
"fmt"
"net/url"
)

func main() {
query := make(url.Values)
query.Add("key", "value")
url := &url.URL{RawQuery: query.Encode(), Host: "foo", Scheme: "http"}
fmt.Println(url)
}

避免使用字符串查询和使用 fmt 包 Sprintf 方法添加值。这不是管理查询字符串和创建动态 url 的正确方法。

关于golang ParseQuery url 给我错误的输出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52946196/

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