2011-07-01 3 views
0

UriBuilderを使用してエスケープされていないパラメータをURLに追加しようとしています。パラメータの文字がエスケープされないようにするにはどうすればよいですか?C#でエスケープされていないクエリパラメータを追加する

query.Set("oauth_signature", CONSUMER_SECRET + "%26"); 
builder.Query = query.ToString(); 

得られたURLは常に、(明らかに25%である)oauth_signature値としてエスケープシーケンスとして%を含有します。

+0

コードスニペットの「クエリ」変数はどのタイプですか? –

+0

サブクラスのNameValueCollection(toString()は正しいクエリ文字列を生成します)のようです。 – Simon

答えて

1

26は&ですか?なぜちょうど

query.Set("oaut_signature", CONSUMER_SECRET + "&"); 
+0

ああ、私はこれまで、クエリパラメータを含む単純な文字列を使用してURIオブジェクトを作成しましたが、エスケープされていませんでした。私もUriBuilderを使って試したと思った。明らかに私はそうしなかったし、あなたのソリューションはそれが必要とするように動作します。どうもありがとうございました!ときどき木の森が見えない場合もあります;-) – Simon

0
汚い回避策は、パラメータがで行くべき場所を識別するためにトークンを使用することであろう

、その後string.Replaceそれをしません。しかし、それは安全ではありません。それはおそらくUriBuilderで簡単な方法がないのです。