2017-05-03 171 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

相關問題