2017-05-03 175 views
1

我想从goUR中的RequestURI获取查询参数。 网址是这样的: http://localhost:3000/add-ebay?authToken=AgAAAA**AQAAAA**aAAAAA**6d8JWQ**nY+sHZ2PrBmdj6wVnY+sEZ2...Go-fasthttp如何从RequestURI获取查询参数而不会丢失字符

而且我的代码如下:

func CreateEbayProfile(ctx *fasthttp.RequestCtx) { 

    log.Println(ctx.QueryArgs().Peek("authToken")) 
       .... 
} 

结果是:

AgAAAA**AQAAAA**aAAAAA**6d8JWQ**nY sHZ2PrBmdj6wVnY sEZ2... 

但我想造成这样的:

AgAAAA**AQAAAA**aAAAAA**6d8JWQ**nY+sHZ2PrBmdj6wVnY+sEZ2... 

我怎样才能得到正确的结果?为什么会发生这种情况?

+2

URL查询中的空格以'+'格式转义。就查询字符串而言,这些值是等价的。 – JimB

+0

感谢您的帮助。 – Alakey

+0

从技术上讲,你正在得到正确的结果;如果该参数应该包含文字“+”字符,那么输入不正确,并且应该是URL编码的(通过'%2B'代替'+')。 – Adrian

回答

0

您可以简单地使用​​来替换另一个字符。

package main 

import (
    "fmt" 
    "strings" 
) 

func main() { 
    s := "AgAAAA**AQAAAA**aAAAAA**6d8JWQ**nY sHZ2PrBmdj6wVnY sEZ2..."; 
    conv := strings.Replace(s, " ", "+", -1) 

    fmt.Println(conv) //AgAAAA**AQAAAA**aAAAAA**6d8JWQ**nY+sHZ2PrBmdj6wVnY+sEZ2... 

} 

在这里你可以找到一个Playground复制该代码。

+0

谢谢。这也是解决方案之一。 – Alakey

+0

所以你解决了我的答案? – AndreaM16

+0

我认为你的答案不是很好的解决方案。我必须对网址进行编码。我认为这是最好的解决方案。无论如何,我感谢你的帮助。AndreaM – Alakey

相关问题