Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Работа с сетью в Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 04.01.2014, 20:58   #1
Seocoder
Новичок
Джуниор
 
Регистрация: 04.01.2014
Сообщений: 2
По умолчанию Рекапча

Доброго времени! Господа, ткните носом в чем грабли.
Пытаюсь вывести пикчу рекапчи, а оно вылетает с ошибкой:
Acces violation at address 0000000. Read of address 0000000

И проблема в строке: s1 := http.Get('http://api.recaptcha.net/challenge?k='+ re);
Не пойму, что не так..
Дельфа 7, Инди 10

Код:

procedure TForm1.Button1Click(Sender: TObject);

var
  Http  : TidHttp;
  CM    : TidCookieManager;
  Data  : TStringList;
  StrPage, UserID,  UserName  :  String;
  i : integer;
  cap, s, s1, re: string;
  ms : TMemoryStream;
  jpg : TJPEGImage;
begin
  try
    memo1.Lines.clear;
    Http := TIdHTTP.Create(Self);
    Data := TStringList.Create;
    CM := TidCookieManager.Create(Http);
    Http.AllowCookies := true;
    Http.CookieManager := CM;
    Http.HandleRedirects := true;

    Http.Request.Host:='www.webs.com';
    Http.Request.UserAgent:='Mozilla/5.0 (Windows; U; Windows NT 5.1; ru; rv:1.9.0.10) Gecko/2009042316 Firefox/3.0.10';
    Http.Request.Accept:='text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8';
    Http.Request.AcceptLanguage:='ru,en-us;q=0.7,en;q=0.3';
    Http.Request.AcceptCharSet:='windows-1251,utf-8;q=0.7,*;q=0.7';
    Http.Request.Referer:='http://www.webs.com/';

    Data.Add('newMember=true');
    Data.Add('emailAddress=bubabobabu@gmail.com');
    Data.Add('password=1111111');
    Data.Add('category=241');
    StrPage := Http.Post('http://members.webs.com/s/signup/?fromHomepage=1', Data);
  finally
    Data.Free;
    CM.Free;
    Http.Free;
  end;

  if Pos('<label for="users_first_site_title" id="siteName_label"',StrPage)> 0 then
    Memo1.Lines.Text := 'OK!'
  else
    Memo1.Lines.Text := 'Erorr!';
    //ReCaptha
  i := Pos('http://api.recaptcha.net/challenge',StrPage);
  i := PosEx('=',StrPage,i)+1;
  re := Copy(StrPage,i,PosEx('"',StrPage,i)-i);
  s1 := http.Get('http://api.recaptcha.net/challenge?k='+ re);
  i := Pos('RecaptchaState',s1);
  i := PosEx('challenge',s1,i);
  i := PosEx(#39,s1,i)+1;
  re := Copy(s1,i,PosEx(#39,s1,i)-i);
  ms := TMemoryStream.Create;
  http.Get('http://www.google.com/recaptcha/api/image?c='+re,ms);
  ms.Seek(0,0);
  jpg := TJPEGImage.Create;
  ms.Position := 0;
  jpg.LoadFromStream(ms);
  ms.Free;
  Image1.Picture.Assign(jpg);
  jpg.Free;

end;

Последний раз редактировалось Seocoder; 04.01.2014 в 21:03.
Seocoder вне форума Ответить с цитированием
Старый 05.01.2014, 04:32   #2
Seocoder
Новичок
Джуниор
 
Регистрация: 04.01.2014
Сообщений: 2
По умолчанию

Вопрос снят)Сразу после праздников кодить вредно))
Seocoder вне форума Ответить с цитированием
Старый 05.01.2014, 12:10   #3
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Бывает )
Я потому в такие дни тупо забиваю на все и сижу смотрю сериалы.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц