2016-10-22 6 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

이 코드를 포맷하기 위해 어떤 노력을 확인하십시오 수행이이처럼 결과를 모범 사례를 선언

bool result = false; 

대신

result = WebResponse.StatusCode == HttpStatusCode.OK; 

를 만들기 위해 - 볼 글을 게시하기 전에 미리보기에서 글을보고 싶은지 확인하십시오. 다음으로'WebResponse.StatusCode' *가'HttpStatusCode.OK'가 아니기 때문에 아마도'Result'가 false입니다. 코드로 디버그하고 실제로 * * 무엇을 보았습니까? 이외에도 C#의 지역 변수는 대개 소문자로 시작합니다. 협약에 따라 다른 사람들이 여러분을 도울 수 있습니다. –

+0

Jon이 언급 한 것처럼 Microsoft 명명 규칙을 검토하는 것이 좋습니다. https://msdn.microsoft.com/en-us/library/ms229002.aspx –

+0

고마워요, 제가 만들 것입니다 : –

답변

0

코드는 기본적으로 false로 결과를 설정하는, 그래서 그것은 결코

result = WebResponse.StatusCode == HttpStatusCode.OK; 

그래서 결과가 false 인이 라인에 도달하지, 캐치에 오는 찾을 수 없습니다 (404) 반환; 또한

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

미안하지만 여전히 404를 찾지 못함 –

+0

그렇다면 거짓만을 반환합니다. 도움이 되었다면 대답으로 표시합니다. – Sajeetharan

+0

제발, 404가 반환되지 않는 이유를 알고 싶습니다. –

관련 문제