【发布时间】:2011-11-02 23:35:30
【问题描述】:
我正在研究 WCF REST API 集成,这也是我第一次使用 Twitter API。我在控制台应用程序中编码这些行。请从这里Twitter Doc
找到帮助文档HttpClient http = new HttpClient("http://twitter.com/statuses/");
http.TransportSettings.Credentials = new NetworkCredential(username, password);
HttpResponseMessage resp = null;
System.Net.ServicePointManager.Expect100Continue = false;
Console.WriteLine("\nPlease enter a command: ");
string command = Console.ReadLine();
while (!command.Equals("q"))
{
try
{
switch (command)
{
case "ls public":
GetStatuses(http, "public_timeline.xml");
break;
case "ls friends":
GetStatuses(http, "friends_timeline.xml");
break;
case "ls":
GetStatuses(http, "user_timeline.xml");
break;
}
}
catch (Exception ex)
{
Console.ForegroundColor = ConsoleColor.Red;
Console.WriteLine(ex.Message);
Console.ForegroundColor = ConsoleColor.Yellow;
}
Console.WriteLine("\nPlease enter a command: ");
Console.ReadLine();
}
这是其他代码,
static void GetStatuses(HttpClient http, string uri)
{
HttpResponseMessage resp= http.Get(uri);
resp.EnsureStatusIsSuccessful();
DisplayTwitterStatuses(resp.Content.ReadAsXElement());
}
static void DisplayTwitterStatuses(XElement root)
{
var statuses = root.Descendants("status");
foreach (XElement status in statuses)
{
Console.ForegroundColor = ConsoleColor.Green;
Console.Write(status.Element("user").Element("screen_name").Value);
Console.ForegroundColor = ConsoleColor.Gray;
Console.Write(" {0} ",status.Element("id").Value);
Console.ForegroundColor = ConsoleColor.White;
string text = status.Element("text").Value;
if (text.Length > 50)
text = text.Remove(50) + "....";
Console.WriteLine(text);
Console.ForegroundColor = ConsoleColor.Yellow;
}
}
如果我选择“ls public”,它会显示公共 xml 数据,但如果我选择“ls friends”或“ls”,即使我的凭据有效,它也会引发授权错误。
Unauthorized (401) is not one of the following: OK (200), Created (201), Accepted (202), NonAuthoritativeInformation (203), NoContent (204), ResetContent (205), PartialContent (206)
请帮我找出解决办法!
【问题讨论】:
-
您找到解决方案了吗?我也有这个特定的问题。我认为我们需要根据 Oauth 身份验证过程将 access_key 传递给 trow 标头
-
感谢 silagy,但我仍然面临这个问题。
标签: c# wcf api twitter wcf-rest