0

POST で httpwebrequest を使用して Web サイト (例: https://www.facebook.com/login.php?login_attempt=1 ) にログインしようとしています。ただし、ログイン後に結果が返されるわけではありません。

コードの何が問題なのかわからないのですが、助けてもらえますか? 本当にありがとう!

これは私のコードです:

        private void Button_Click_1(object sender, RoutedEventArgs e)
    {
        System.Uri myUri = new System.Uri("https://www.facebook.com/login.php?login_attempt=1");
        HttpWebRequest myRequest = (HttpWebRequest)HttpWebRequest.Create(myUri);
        myRequest.Method = "POST";
        myRequest.ContentType = "application/x-www-form-urlencoded";
        myRequest.BeginGetRequestStream(new AsyncCallback(GetRequestStreamCallback), myRequest);

    }

    void GetRequestStreamCallback(IAsyncResult callbackResult)
    {
            HttpWebRequest myRequest = (HttpWebRequest)callbackResult.AsyncState;
            // End the stream request operation
            Stream postStream = myRequest.EndGetRequestStream(callbackResult);
            StringBuilder postData = new StringBuilder();
            postData.Append("email=myEmail");
            postData.Append("&password=myPassword");
            byte[] byteArray = Encoding.UTF8.GetBytes(postData.ToString());
            postStream.Write(byteArray, 0, postData.Length);
            postStream.Close();
            myRequest.BeginGetResponse(new AsyncCallback(GetResponsetStreamCallback), myRequest);
    }
    void GetResponsetStreamCallback(IAsyncResult callbackResult)
    {
            HttpWebRequest request = (HttpWebRequest)callbackResult.AsyncState;
            HttpWebResponse response = (HttpWebResponse)request.EndGetResponse(callbackResult);
            using (StreamReader httpWebStreamReader = new StreamReader(response.GetResponseStream()))
            {
                string result = httpWebStreamReader.ReadToEnd();
                //For debug: show results
                Deployment.Current.Dispatcher.BeginInvoke(() =>
                {
                   // something do
                });
            }

    }
4

1 に答える 1

0

ざっと見てみました: https://www.facebook.com/login.phpの入力フィールドは「email」と「pass」(「password」ではありません) という名前になっています。未テスト: 変更

postData.Append("&password=myPassword");

postData.Append("&pass=myPassword");

これがうまくいったとしても、あなたが何をしようとしても、それ以上のことはできないと思います。Facebook SDK のいずれかを使用することをお勧めします。

于 2013-10-15T07:47:47.970 に答える