#c#
#c#
Вопрос:
Я использую этот код для проверки электронной почты Twitter и пароля в c #, но он возвращает false, и я не знаю почему? кроме того, я хочу вернуть xml, чтобы прочитать из него имя пользователя.
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(email ":" password));
// Create our HTTP web request object
HttpWebRequest Request =
(HttpWebRequest)WebRequest.Create("http://twitter.com/account/verify_credentials.xml");
//Request.Proxy = WebProxy;
//Request.Timeout = Timeout.Infinite;
//Request.ReadWriteTimeout = Timeout.Infinite;
//Request.KeepAlive = false;
//Request.AllowAutoRedirect = false; // was true
//Request.CookieContainer = cc;
//Request.UserAgent = "Mozilla/5.0 (Windows NT 6.2; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/39.0.2171.95 Safari/537.36";
// 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();
string SourceCode = new StreamReader(WebResponse.GetResponseStream()).ReadToEnd();
// 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 Resu<
Комментарии:
1.Пожалуйста, приложите некоторые усилия для форматирования вашего кода — посмотрите предварительный просмотр перед публикацией и спросите, действительно ли вы хотите, чтобы ваш пост выглядел именно так. Далее, предположительно,
Result
имеет значение false, потому чтоWebResponse.StatusCode
это неHttpStatusCode.OK
так. Вы выполнили отладку в коде и посмотрели, что это на самом деле такое? Кстати, локальные переменные в C # обычно начинаются со строчной буквы. Следуя соглашениям, другим будет проще помогать вам.2. Как упоминает Джон, возможно, вам захочется ознакомиться с Рекомендациями Microsoft по именованию: msdn.microsoft.com/en-us/library/ms229002.aspx
3. спасибо, я это сделаю 🙂
Ответ №1:
На самом деле ваш код возвращает 404 not found, что приводит к перехвату, поэтому по умолчанию вы устанавливаете результат в false, он никогда не достигает этой строки
result = WebResponse.StatusCode == HttpStatusCode.OK;
итак, результат false
;
Также, чтобы было удобнее объявлять свой результат следующим образом,
bool result = false;
Вместо
result = WebResponse.StatusCode == HttpStatusCode.OK;
просто сделайте
if(WebResponse.StatusCode == HttpStatusCode.OK;)
{
result =true;
}
Комментарии:
1. Прошу прощения, но по-прежнему возврат 404 не найден
2. Да, тогда он вернет только false, отметьте как ответ, если это помогло
3. Пожалуйста, я хочу знать, почему он возвращает 404 not found?
4. Конечно, я предоставлю образец