Roe*_*ler 5 c# api twitter c#-3.0 c#-4.0
赏金问题
我正在使用c#3.5 Window Forms Application.我正在使用接受的答案中提到的代码.而我正在低于错误
将非常感谢用于验证UserName和Password的示例代码
赏金问题结束
我有一个具有以下用例的应用程序:当用户第一次开始使用该应用程序时,他输入了他的用户名和密码.然后,在更晚的阶段,应用程序可以更新其状态.
目前我正在使用Twitterizer,但我相信这个问题超出了我正在使用的特定库的范围.以下是两行相关的代码:
Twitter twitter = new Twitter("username", "password", "source");
twitter.Status.Update("update");
Run Code Online (Sandbox Code Playgroud)
如果用户名/密码不正确,Twitter对象的构造不会引发异常.这可能是因为此时没有发送任何内容.另一方面,如果用户名/密码无效,状态更新会抛出异常.
我的问题是我想在用户输入时验证用户名/密码,而不是在尝试发布更新时.
如何验证用户名/密码而不发布任何内容(在Twitterizer或其他方面)?
快速浏览一下peSHIr提到的verify_credentials API,我写了一个小程序,似乎可以解决这个问题.已经很晚了,但我能够测试它几次并且似乎有效.
在我的函数中,如果我得到一个HttpResponseCode.OK,我只返回true,如果我得到其他任何东西或抛出异常,则返回false.如果twitter不喜欢uid/password,则会抛出401异常(未经授权)的异常.
public bool CheckTwitterCredentials(string UserName, string Password)
{
// Assume failure
bool Result = false;
// A try except block to handle any exceptions
try {
// Encode the user name with password
string UserPass = Convert.ToBase64String(
System.Text.Encoding.UTF8.GetBytes(UserName + ":" + Password));
// Create our HTTP web request object
HttpWebRequest Request =
(HttpWebRequest)WebRequest.Create("http://twitter.com/account/verify_credentials.xml");
// Set up our request flags and submit type
Request.Method = "GET";
Request.ContentType = "application/x-www-form-urlencoded";
// Add the authorization header with the encoded user name and password
Request.Headers.Add("Authorization", "Basic " + UserPass);
// Use an HttpWebResponse object to handle the response from Twitter
HttpWebResponse WebResponse = (HttpWebResponse)Request.GetResponse();
// Success if we get an OK response
Result = WebResponse.StatusCode == HttpStatusCode.OK;
} catch (Exception Ex) {
System.Diagnostics.Debug.WriteLine("Error: " + Ex.Message);
}
// Return success/failure
return Result;
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3216 次 |
| 最近记录: |