我正试图发布以从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说错误意味着:
页面上的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
merh +多“
当我在服务器上得到它时,值为
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
}
);
答案 0 :(得分: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地址,但您获得的当前错误是由于参数中的前导空格。
答案 1 :(得分:0)
reCAPTCHA规范明确指出&#34; remoteip&#34;参数确实是必需: