4

C#コードから再キャプチャするために投稿しようとしています。

        var data = new NameValueCollection
        {
            { "privatekey", "my key" },
            { "remoteip ", "" },
            { "challenge ", model.recaptcha_challenge_field },
            { "response ", model.recaptcha_response_field }
        };

        using (var client = new WebClient())
        {

            var response = client.UploadValues("http://www.google.com/recaptcha/api/verify", data: data);

            var result = ASCIIEncoding.ASCII.GetString(response);

        }

私がこの結果を返すと

false invalid-request-cookie

リモート IP を設定する必要がありますか? 他に何が問題になる可能性がありますか?

アップデート

https://developers.google.com/recaptcha/docs/verifyは、エラーの意味を示しています:

https://developers.google.com/recaptcha/docs/verify

ページ上の html の値は次のとおりです。

<INPUT id=recaptcha_challenge_field value=03AHJ_VusdI2SY_P2iM3VICgLmOw-7CE7F6zmOwvwfya4L8Jeiok_rCwVmHFJwJHxlelhp8By_QTA7SNF58fwijij5rxBLqgpoI3nuWy6S0HGL7U7lk_35aazPfaMyVwbeWuWJyxJ0DqjwDwrByD4AY70O0qlaTnCUxQ type=hidden name=recaptcha_challenge_field />

ポストバックするオブジェクトでは、次のようになります。

“recaptcha_challenge_field=03AHJ_VusdI2SY_P2iM3VICgLmOw-7CE7F6zmOwvwfya4L8Jeiok_rCwVmHFJwJHxlelhp8By_QTA7SNF58fwijij5rxBLqgpoI3nuWy6S0HGL7U7lk_35aazPfaMyVwbeWuWJyxJ0DqjwDwrByD4AY70O0qlaTnCUxQ&recaptcha_response_field=reメル+たくさん」

サーバーで取得すると、値は

03AHJ_VusdI2SY_P2iM3VICgLmOw-7CE7F6zmOwvwfya4L8Jeiok_rCwVmHFJwJHxlelhp8By_QTA7SNF58fwijij5rxBLqgpoI3nuWy6S0HGL7U7lk_35aazPfaMyVwbeWuWJyxJ0DqjwDwrByD4AY70O0qlaTnCUxQ

したがって、3 つの値をすべて並べると、次のようになります。

03AHJ_VusdI2SY_P2iM3VICgLmOw-7CE7F6zmOwvwfya4L8Jeiok_rCwVmHFJwJHxlelhp8By_QTA7SNF58fwijij5rxBLqgpoI3nuWy6S0HGL7U7lk_35aazPfaMyVwbeWuWJyxJ0DqjwDwrByD4AY70O0qlaTnCUxQ 
03AHJ_VusdI2SY_P2iM3VICgLmOw-7CE7F6zmOwvwfya4L8Jeiok_rCwVmHFJwJHxlelhp8By_QTA7SNF58fwijij5rxBLqgpoI3nuWy6S0HGL7U7lk_35aazPfaMyVwbeWuWJyxJ0DqjwDwrByD4AY70O0qlaTnCUxQ 
03AHJ_VusdI2SY_P2iM3VICgLmOw-7CE7F6zmOwvwfya4L8Jeiok_rCwVmHFJwJHxlelhp8By_QTA7SNF58fwijij5rxBLqgpoI3nuWy6S0HGL7U7lk_35aazPfaMyVwbeWuWJyxJ0DqjwDwrByD4AY70O0qlaTnCUxQ

ページの再キャプチャは、次の呼び出しによって生成されています。

Recaptcha.create("pub key",
    "myDiv",
    {
        theme: "clean",
        callback: Recaptcha.focus_response_field
    }
  );
4

2 に答える 2

4

remoteip、challenge、および response パラメータにスペースが残っています。そのはず

var data = new NameValueCollection
        {
            { "privatekey", "my key" },
            { "remoteip", "192.168.1.111" },
            { "challenge", model.recaptcha_challenge_field },
            { "response", model.recaptcha_response_field }
        };

また、IP アドレスも必要ですが、現在発生しているエラーは、パラメーターの先頭にスペースがあるためです。

于 2013-02-14T07:26:07.747 に答える