您好!
我有一个URL,比方说
http://someurl.com?someparam=my.dot.param
我知道句点("."-符号(是一个有效的HTTP查询符号,但由于某些原因,我需要用"%2E"转义它
我想使用类似于EscapedPath((的东西,但是,正如我之前提到的,句点("."-符号(是一个有效的HTTP查询符号,所以我不能这样做。
我做了什么。
1( 我删除字符串">my.dot.param"中带有一些常量的所有句点(如"_remove_this_dot_"(所以我得到了">my_remove_this_dot_dot_remove_this_dot_param">
2( 在我得到最终URL:之后
u.RawQuery = q.Encode()
retURL := u.String()
我做
result := strings.ReplaceAll(retURL, "_remove_this_dot_", "%2E")
一切正常,但代码看起来很糟糕——有什么方法可以纠正吗?也许有标准库?
PS抱歉我英语不好。
有时需要糟糕的代码来解决网络对等中的错误。
与问题中的方法相比,一种更简单的方法是用包括.
的值替换原始查询中创建原始查询的.
。
q.Set("someparam", "my.dot.param")
u.RawQuery = strings.ReplaceAll(q.Encode(), ".", "%2E")
result := u.String()
在操场上跑步。