2013-04-16 20 views
0

我一直在試圖弄清楚爲什麼這篇文章的方法沒有經過。我一直在使用Fiddler,並且現在已經爲此工作了好幾個小時。如果有人能夠幫助那會很好。錯誤403與電子郵件檢查程序POST C#

private string getemail(string user, string pass) 
{ 
    var cookies = new CookieContainer(); 

    var getRequest = (HttpWebRequest)WebRequest.Create("http://account.mojang.com/migrate"); 
    cookies = (getRequest as HttpWebRequest).CookieContainer; 
    string[] tok = ReadResponse(getRequest).Split(new string[] { "name=\"authenticityToken\" value=\"" }, StringSplitOptions.None); 
    string[] toke = tok[1].Split('"'); 
    string token = toke[0]; 

    HttpWebRequest request = (HttpWebRequest)WebRequest.Create("https://account.mojang.com/migrate/check"); 
    request.CookieContainer = cookies; 
    request.Method = "POST"; 
    request.Headers.Add("Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.3"); 
    request.Headers.Add("Accept-Encoding: gzip,deflate,sdch"); 
    request.Headers.Add("Accept-Language: en-US,en;q=0.8"); 
    request.UserAgent = "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.31 (KHTML, like Gecko) Chrome/26.0.1410.64 Safari/537.31"; 
    request.ContentType = "text/plain"; 
    using (var requestStream = request.GetRequestStream()) 
    { 
     using (var writer = new StreamWriter(requestStream)) 
     { 
      writer.Write("authenticityToken=" + token + "&mcusername=" + user + "&password=" + pass); 
     } 
    } 
    using (var responseStream = request.GetResponse().GetResponseStream()) 
    { 
     using (var reader = new StreamReader(responseStream)) 
     { 
      var result = reader.ReadToEnd(); 
      return result; 
     } 
    } 

}

+0

注意:我知道我需要做更多的事情之後,我只需要解決這個問題就可以了。 – user2081191

回答

0

閉上你的StreamWriter書寫內容轉換爲請求流之後。

using (var writer = new StreamWriter(requestStream)) 
{ 
    writer.Write("authenticityToken=" + token + "&mcusername=" + user + "&password=" + pass); 
    writer.Close(); 
} 
+0

哦,忘了。謝謝,但403錯誤仍在發生。 – user2081191

+0

403是「禁止」錯誤。它似乎與您的請求的授權有關。 – Sachin

+0

這可以在我使用我的瀏覽器時使用。我試圖模仿點的請求。我不知道現在該做什麼,所以幫助將不勝感激。 – user2081191