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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 15.09.2012, 20:27   #1
scroyler
Форумчанин
 
Регистрация: 02.08.2011
Сообщений: 142
По умолчанию Не задает вопрос на спрашивай

Код:
 function FindID(strB,strE,str:string):string;
var
  b,e:integer;
begin
  b:=pos(strb,str)+Length(strb);
  e:=pos(strE,str);
  if (b=0)or(e=0) then
    Result:=''
  else
    Result:=copy(str,b,e-b);
end;


procedure TForm1.Button1Click(Sender: TObject);
var
  Data:TStringList;
  Request:String;
  id1,id2:string;
begin
  Data:=TStringList.Create;
  Request:=idHTTP1.Get('http://sprashivai.ru/questions');
  id1:=FindID('<button id="askform-button" class="button-yellow-small" style="width: 134px;" onclick="ask(''questions'', ''',''');">'
+AnsiToUtf8('Спросить')+'</button>',Request);
  id2:=FindID('<div id="textarea-ios-fix"></div><input type="hidden" name="asking_hash" value="','" id="asking_hash" />',Request);
   Data.Add(id1+'='+id2);
   data.Add('username'+'='+'konstantin_delphi');
   data.Add('question'+'='+'texxt');
   data.Add('anonimous'+'='+'undefined') ;
   data.Add('capctha'+'='+'')  ;
   idhttp1.Post('http://sprashivai.ru/questions/ask',Data);
end;
end.
Что не так? Кто подскажет?

Последний раз редактировалось Stilet; 15.09.2012 в 21:05.
scroyler вне форума Ответить с цитированием
Старый 16.09.2012, 09:33   #2
scroyler
Форумчанин
 
Регистрация: 02.08.2011
Сообщений: 142
По умолчанию

Код:
procedure TForm1.Button1Click(Sender: TObject);
var
  Data:TStringList;
  Request:String;
  id1,id2,str:string;
  n:integer;
begin
  Data:=TStringList.Create;

str:=idhttp1.Get('http://postingroom.ru/forum/42-0-0-1-1');
n:=pos('"ssid" value="',str)+length('"ssid" value="');
id1:= copy(str,n,posex('" />',str,n)-n);

n:=pos('<button id="askform-button" class="button-yellow-small" style="width: 134px;" onclick="Responses.ask('+'konstantin_delphi'+',',str)+length('<button id="askform-button" class="button-yellow-small" style="width: 134px;" onclick="Responses.ask('+'konstantin_delphi'+',');
id1:= copy(str,n,posex(''+''');">Спросить</button>',str,n)-n);

n:=pos('<div id="textarea-ios-fix"></div><input type="hidden" name="asking_hash" value="',str)+length('<div id="textarea-ios-fix"></div><input type="hidden" name="asking_hash" value="');
id2:= copy(str,n,posex('" id="asking_hash" />',str,n)-n);

   data.Add('username=konstantin_delphi');
   data.Add('question=texxt');
   Data.Add(id1+'='+id2);
   data.Add('anonimous'+'='+'undefined') ;
   data.Add('capctha'+'='+'')  ;
   idhttp1.Post('http://sprashivai.ru/questions/ask',Data);
end;
end.
делаю так,все равно не работает
Подскажите пож.,мне срочно надо!
scroyler вне форума Ответить с цитированием
Старый 16.09.2012, 13:37   #3
kangreon
Форумчанин
 
Аватар для kangreon
 
Регистрация: 03.04.2009
Сообщений: 305
По умолчанию

Проверьте сниффером отправляются ли куки и попробуйте в запрос добавить Referer.
kangreon вне форума Ответить с цитированием
Старый 16.09.2012, 14:51   #4
scroyler
Форумчанин
 
Регистрация: 02.08.2011
Сообщений: 142
По умолчанию

Цитата:
Сообщение от kangreon Посмотреть сообщение
Проверьте сниффером отправляются ли куки и попробуйте в запрос добавить Referer.
вроде нет

Добавил Referer, не помогло, посмотри плз, может я , что то не правильно составляю
scroyler вне форума Ответить с цитированием
Старый 16.09.2012, 18:05   #5
BDA
МегаМодератор
СуперМодератор
 
Аватар для BDA
 
Регистрация: 09.11.2010
Сообщений: 7,322
По умолчанию

Код:
Uses StrUtils, HTTPApp;
...
const
  userName = 'konstantin_delphi';
...
procedure TForm1.Button1Click(Sender: TObject);
var
  Data: TStringList;
  str, s1, s2: string;
  k: integer;
begin
  Data := TStringList.Create;
  str := IdHTTP1.Get('http://sprashivai.ru/' + userName);
  IdHTTP1.Request.Referer := 'http://sprashivai.ru/' + userName;
  s1 := 'Responses.ask(' + chr(39) + userName + chr(39) + ', ' + chr(39);
  k := pos(s1, str);
  if k > 0 then
    s1 := copy(str, k + length(s1), posex(chr(39) + ');', str,
        k) - k - length(s1))
  else
    s1 := '';
  s2 := 'name="asking_hash" value="';
  k := pos(s2, str);
  if k > 0 then
    s2 := copy(str, k + length(s2), posex('" id="', str, k) - k - length(s2))
  else
    s2 := '';
  Data.Add('username=' + userName);
  Data.Add('question=' + stringreplace(httpencode(
        'тестовый вопрос для проверки delphi программы)'), '+', '%2B',
      [rfReplaceAll]));
  Data.Add(s1 + '=' + s2);
  Data.Add('anonimous' + '=' + 'undefined');
  Data.Add('capctha' + '=' + '');
  str := IdHTTP1.Post('http://sprashivai.ru/questions/ask', Data);
  Data.free;
end;
Остается обработать полученный ответ в str.
Желательно, чтобы str = '{"status":"ok"}', но могут быть различные ошибки.
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись )
BDA на форуме Ответить с цитированием
Старый 16.09.2012, 18:50   #6
scroyler
Форумчанин
 
Регистрация: 02.08.2011
Сообщений: 142
По умолчанию

Цитата:
Сообщение от BDA Посмотреть сообщение
Код:
Uses StrUtils, HTTPApp;
...
const
  userName = 'konstantin_delphi';
...
procedure TForm1.Button1Click(Sender: TObject);
var
  Data: TStringList;
  str, s1, s2: string;
  k: integer;
begin
  Data := TStringList.Create;
  str := IdHTTP1.Get('http://sprashivai.ru/' + userName);
  IdHTTP1.Request.Referer := 'http://sprashivai.ru/' + userName;
  s1 := 'Responses.ask(' + chr(39) + userName + chr(39) + ', ' + chr(39);
  k := pos(s1, str);
  if k > 0 then
    s1 := copy(str, k + length(s1), posex(chr(39) + ');', str,
        k) - k - length(s1))
  else
    s1 := '';
  s2 := 'name="asking_hash" value="';
  k := pos(s2, str);
  if k > 0 then
    s2 := copy(str, k + length(s2), posex('" id="', str, k) - k - length(s2))
  else
    s2 := '';
  Data.Add('username=' + userName);
  Data.Add('question=' + stringreplace(httpencode(
        'тестовый вопрос для проверки delphi программы)'), '+', '%2B',
      [rfReplaceAll]));
  Data.Add(s1 + '=' + s2);
  Data.Add('anonimous' + '=' + 'undefined');
  Data.Add('capctha' + '=' + '');
  str := IdHTTP1.Post('http://sprashivai.ru/questions/ask', Data);
  Data.free;
end;
Остается обработать полученный ответ в str.
Желательно, чтобы str = '{"status":"ok"}', но могут быть различные ошибки.
Большое спасибо, но не работает
Либо у меня руки из жопы, либо что

Вот такой ответ
Код:
 {"status":"error","message":"\u041e\u0448\u0438\u0431\u043a\u0430 \u0431\u0435\u0437\u043e\u043f\u0430\u0441\u043d\u043e\u0441\u0442\u0438, \u043f\u043e\u043f\u0440\u043e\u0431\u0443\u0439\u0442\u0435 \u043e\u0431\u043d\u043e\u0432\u0438\u0442\u044c \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u0443 \u0438 \u043f\u043e\u043f\u0440\u043e\u0431\u043e\u0432\u0430\u0442\u044c \u0441\u043d\u043e\u0432\u0430"}
scroyler вне форума Ответить с цитированием
Старый 16.09.2012, 18:55   #7
BDA
МегаМодератор
СуперМодератор
 
Аватар для BDA
 
Регистрация: 09.11.2010
Сообщений: 7,322
По умолчанию

Хм, странно.
Сайт пишет: Ошибка безопасности, попробуйте обновить страницу и попробовать снова (в вашем ответе).
У меня такой не возникало.
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись )
BDA на форуме Ответить с цитированием
Старый 16.09.2012, 18:57   #8
scroyler
Форумчанин
 
Регистрация: 02.08.2011
Сообщений: 142
По умолчанию

Цитата:
Сообщение от BDA Посмотреть сообщение
Хм, странно.
Сайт пишет: Ошибка безопасности, попробуйте обновить страницу и попробовать снова (в вашем ответе).
У меня такой не возникало.
хмм... очень страно
Что мне теперь делать?
Может попробовать через м. версию?
scroyler вне форума Ответить с цитированием
Старый 17.09.2012, 00:04   #9
kangreon
Форумчанин
 
Аватар для kangreon
 
Регистрация: 03.04.2009
Сообщений: 305
По умолчанию

scroyler, какая у вас версия Delphi и версия компонентов Indy?
kangreon вне форума Ответить с цитированием
Старый 17.09.2012, 08:28   #10
scroyler
Форумчанин
 
Регистрация: 02.08.2011
Сообщений: 142
По умолчанию

Цитата:
Сообщение от kangreon Посмотреть сообщение
scroyler, какая у вас версия Delphi и версия компонентов Indy?
хе/хе2
версия идни-9.0 вроде
scroyler вне форума Ответить с цитированием
Ответ


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

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Дана последовательность вещественных чисел. каждая пара чисел задает границы отрезка. Найти количество целых чисел на отрезках 'studentka' Помощь студентам 6 30.11.2011 18:35
Вопрос по mySQL + Вопрос по RichEdit HTL Общие вопросы Delphi 4 01.01.2010 20:22
Вопрос наверное про функции, а так точно даже не знаю про что. (Вопрос начинющего #6) Albert2008 Общие вопросы Delphi 4 21.08.2008 15:33
вопрос по сокетам и общение как в ICQ.Сложный вопрос... Руслантус Общие вопросы C/C++ 2 12.08.2008 21:10
Срочно! Помогите построить СДНФ на Паскале число переменных задает пользователь stscolt Помощь студентам 1 21.04.2008 22:20