0

ログインスクリプトを書き込もうとしていますが、何らかの理由で内部サーバーエラー(500)が発生します。

PHPとcURLでこれを試しましたが、オプションを設定すると応答がありましたVERIFY_PEER = false

C#コードは次のとおりです。

    private void Login()
    {
        HttpWebRequest webRequest = (HttpWebRequest)WebRequest.Create("https://whatever.com");
        ASCIIEncoding encoding = new ASCIIEncoding();
        string postData = string.Format("user={0}&password={1}&submit=login", User, Password);
        byte[] data = Encoding.ASCII.GetBytes(postData);
        webRequest.Method = "POST";
        ServicePointManager.ServerCertificateValidationCallback = (x,y,z,a) => true;
        webRequest.ContentLength = data.Length;
        webRequest.KeepAlive = false;
        using (Stream stream = webRequest.GetRequestStream())
        {
            stream.Write(data, 0, data.Length);
        }
        using (HttpWebResponse response = (HttpWebResponse)webRequest.GetResponse())
        {
            using (StreamReader responseStream = new StreamReader(response.GetResponseStream()))
            {
                Console.WriteLine(responseStream.ReadToEnd());
            }
        }
    }

なぜ私が応答を受け取らないのか誰かが知っていますか?

ご協力いただきありがとうございます。

4

2 に答える 2

0

Fiddlerを使用してHTTPリクエスト/レスポンスを検査することをお勧めします。HTTPSトラフィックを傍受するように設定することもできます。そうすれば、システムが何を要求しているかを正確に確認できます。

コメントから500エラーが発生しました。これは通常、一方のスクリプト/アプリから機能し、もう一方のスクリプト/アプリからは機能しない場合、URL/リクエストの形式が正しくないことを意味します。これにより、何が要求されているかを確認できます(そして、プロトコルエラーを強調表示できます)。

于 2012-07-23T11:24:52.410 に答える
0

間違いを見つけました...サーバーが「有効な」ユーザーエージェントを要求しているようです。Firefoxをユーザーエージェントとして設定すると、すべてが正常に機能します。

于 2012-07-23T13:10:51.253 に答える