我正在使用 RestSharp ( http://restsharp.org/ ) 为 win8 开发 Twitter 客户端,但我遇到了这样的问题:当我使用 RestClient 发布新推文时
var timeLine = new RestRequest("/1/statuses/update.json", Method.POST);
var txt = "Hello world";
timeLine.AddParameter("status", txt);
一切都很好,但是如果我添加更复杂的状态,例如:
var txt = "Hello, World! What a nice day! #1May";
timeLine.AddParameter("status", txt);
我收到 401 错误。在我看到的调试器中,签名基本字符串中的状态参数不正确。我有:
status%3DHello%2C%2520World%21%2520What%2520a%2520nice%2520day%21%2520%231May
和正确的字符串(来自 dev.twitter.com):
status%3DHello%252C%2520World%2521%2520What%2520a%2520nice%2520day%2521%2520%25231May
您可以看到,标点符号 ,!# 和其他编码不正确。我该如何解决?签名库生成和编码位于 /Authenticators/OAuth/OAuthTools.cs