我有一个网址,比如说http://someurl.com?someparam=my.dot.param我知道句点(“.” - 符号)是一个有效的 HTTP 查询符号,但由于某些原因,我需要用“%2E”对其进行转义我想使用像EscapedPath()这样的东西,但是正如我之前提到的,句点(“.” - 符号)是一个有效的 HTTP 查询符号,所以我不能这样做。我做了什么。1)我用一些常数(如“_remove_this_dot_”)删除字符串“ my.dot.param ”中的所有句点,所以我得到“ 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")一切正常,但代码看起来很糟糕 - 有什么方法可以让它正确吗?也许使用标准库?
1 回答
富国沪深
TA贡献1790条经验 获得超9个赞
有时需要糟糕的代码来解决网络对等点中的错误。
问题中的一种更简单的方法是将.创建原始查询的原始查询中的 替换为包括..
q.Set("someparam", "my.dot.param")
u.RawQuery = strings.ReplaceAll(q.Encode(), ".", "%2E")
result := u.String()
- 1 回答
- 0 关注
- 93 浏览
添加回答
举报
0/150
提交
取消