2017-05-03 1 views
1

golangのRequestURIからクエリ引数を取得したいとします。 URLはそのようなものです: 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

これも解決策の1つです。 – Alakey

+0

あなたは私の答えで解決しましたか? – AndreaM16

+0

あなたの答えは良い解決策ではないと思います。私はURLをエンコードする必要があります。これが最良の解決策だと私は思います。とにかく私はあなたの助けに感謝します。アンドレア – Alakey

関連する問題