我正在使用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错误。在我看到的调试器中,Signature Base String中的状态参数不正确。我有:
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
答案 0 :(得分:0)
我在网站上显示Twitter Feed时遇到同样的问题。因此,我使用此代码转换文本。
Regex.Replace(str,“@(。*?):”,@“@http://twitter.com/#!/ $ 1> $ 1:”);