2016-10-22 8 views
-2

私はこのコードを使ってC#でTwitterの電子メールとパスワードを確認していますが、falseを返すのですが、その理由はわかりません。 また、私はそれからユーザー名を読み取るためにxmlを返したいと思います。なぜWebResponse.StatusCode == HttpStatusCode.OKがfalseを返すのですか?

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 Result; 
+2

を行う作るためにあなたのコードをフォーマットするためにいくつかの努力をしてください - 見てあなたが投稿する前にプレビューで、あなたの投稿を見たいと思うかどうか尋ねてください。次に、 'WebResponse.StatusCode' *が' HttpStatusCode.OK'ではないので、おそらく 'Result'はfalseです。コードにデバッグして、実際に* *何かを見ましたか?さて、C#のローカル変数は通常、小文字で始まります。慣例に従うと、他の人があなたを助けやすくなります。 –

+0

Jonが言及しているように、Microsoft Naming Guidelines:https://msdn.microsoft.com/en-us/library/ms229002.aspx –

+0

をお読みいただき、ありがとうございます。 –

答えて

0

実際にあなたのコードは、あなたがfalseに結果を設定しているデフォルトではので404は、キャッチに来るこれは、見つからない返し、それは

result = WebResponse.StatusCode == HttpStatusCode.OK; 

この行に到達したことがないので、結果はfalseです;

また、それは良い習慣は、このようにする代わりに

result = WebResponse.StatusCode == HttpStatusCode.OK; 

bool result = false; 

をあなたの検索結果を宣言するだけで

if(WebResponse.StatusCode == HttpStatusCode.OK;) 
{ 
    result =true; 
} 
+0

申し訳ありませんが、まだ404が見つかりませんでした –

+0

はい、それは助けになった場合、答えとしてマークするだけで偽を返します – Sajeetharan

+0

私はそれが404が返されない理由を知りたいですか? –

関連する問題