1

我正在使用 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

4

1 回答 1

0

当我在网站上显示 twitter 提要时,我遇到了同样的问题。因此,我使用此代码来转换文本。

Regex.Replace(str, "@(.*?):", @"@http://twitter.com/#!/$1>$1:");

于 2014-02-05T14:25:00.470 回答