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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 06.04.2013, 01:25   #1
IvaniuS
Форумчанин
 
Аватар для IvaniuS
 
Регистрация: 16.04.2007
Сообщений: 225
Смущение idHttp post запрос

полазив по форуму из себя вытянул вот это:
Код:
const
ukrcc: string = 'http://www.ukrcc.com/ua/setificate-one-office/text=3&page=1&ORGEDRPOUNUMBER=';
procedure TForm1.ButtlinkClick(Sender: TObject);
var
  mStream: TMemoryStream;
  Lst :TStrings;
  param:TStringList;
begin
mStream := TMemoryStream.Create;
Lst := TStringList.Create;
    Http.Get(ukrcc+okpo.Text, mStream);
    http.Request.Referer:=ukrcc+okpo.Text;
    param:=TStringList.Create;
    try
      param.Text:='SertEdrpo='+okpo.Text;
      http.Post(ukrcc,param, mStream);
    finally
      param.Free;
    end;
    mStream.Position := 0;
    Lst.LoadFromStream(mStream);
    html:=Lst.Text;
    lictext.Text:=HTML;
     mStream.Free;
     Lst.Free;
end;
Но пост запрос не проходит или хз, сниферром вижу что я посылаю:
Код:
parameter name=SertEdrpo; Value=235...
, а браузер
Цитата:
SertEdrpo=23560463
(в снифере в пост дата нету столбиков вообще)
и я должен получить что-то вроде этого:

Код:
{"id":"13651927406393","js":{"text":["..."],"id":["3721042",
"2963656","3721040","2058481","2058479","3721038","2928450"],"start_date":
["04.04.2013","16.11.2012","04.04.2013","06.04.2012","06.04.2012",
"04.04.2013","09.11.2012"],"end_date":["04.04.2015","15.11.2014","04.04.2015",
"05.04.2013","05.04.2013","04.04.2015","08.11.2013"]},"text":""}
вот так это в браузере:

Смысл программы - проверять программно есть ли сертификат и до какого числа он.

Последний раз редактировалось IvaniuS; 06.04.2013 в 01:35.
IvaniuS вне форума Ответить с цитированием
Старый 06.04.2013, 01:50   #2
eval
Подтвердите свой е-майл
 
Регистрация: 29.08.2012
Сообщений: 4,022
По умолчанию

потому что в справку не заглядывали
реферер неправильно установили, да и надоли он
параметры неправильно инициализировали
потому то и "хз"...
eval вне форума Ответить с цитированием
Старый 06.04.2013, 01:51   #3
BDA
МегаМодератор
СуперМодератор
 
Аватар для BDA
 
Регистрация: 09.11.2010
Сообщений: 7,285
По умолчанию

Что-то похожее:
Код:
procedure TForm1.Button1Click(Sender: TObject);
const
  ukrcc: string = 'http://www.ukrcc.com/inc/sertificate_from_edrpo.php';
  text: string = '235';
var
  st: string;
  param: TStringList;
begin
  param := TStringList.Create;
  try
    param.text := 'SertEdrpo=' + text;
    st := IdHTTP1.Post(ukrcc, param);
  finally
    param.Free;
  end;
  showmessage(st);
end;
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись )
BDA вне форума Ответить с цитированием
Старый 06.04.2013, 17:43   #4
IvaniuS
Форумчанин
 
Аватар для IvaniuS
 
Регистрация: 16.04.2007
Сообщений: 225
По умолчанию

благодарю, вот что у меня получилось в итоге мб кому пригодиться.
Код:
procedure TForm1.ButtlinkClick(Sender: TObject);//тянем имена
var
  mStream: TMemoryStream;
  Lst :TStrings;
  param:TStringList;
begin
 application.ProcessMessages;
  mStream := TMemoryStream.Create;
  Lst := TStringList.Create;
    try
      http.Request.Referer:=sertwin;
      param:=TStringList.Create;
      param.Text:='SertEdrpo='+okpo.Text;
      http.Post(sertwin,param, mStream);
    finally
      param.Free;
    end;
    mStream.Position := 0;
    Lst.LoadFromStream(mStream);
    if length(Lst.Text)>150 then
      lictext.Text:=Lst.Text;
     mStream.Free;
     Lst.Free;
end;
procedure TForm1.ButtIDCRTClick(Sender: TObject);//находим только ID
var
  startpos,endpos,i:integer;
  ids:string;
begin
  if lictext.Text<>'' then begin
    startPos := posex(iddta, lictext.Text)+6;
    endPos := posex(strtdta, lictext.Text);
    ids:=Copy(lictext.Text, startpos, endpos-startpos);
    for I := 0 to round(length(ids)/7) do
      if posex('"', ids)<>0 then begin
        startPos := posex('"', ids);
        if copy(ids, startpos+1, 7)<>'"]' then
        okpos.Items.Add(copy(ids, startpos+1, 7));
        delete(ids,startpos, 9);
      end;
  end;
lictext.Text:='';
end;
procedure TForm1.ButtvwcrtClick(Sender: TObject);//по ID загружаем серт
var
  mStream: TMemoryStream;
  Lst :TStrings;
begin
    mStream := TMemoryStream.Create;
    Lst := TStringList.Create;
    try
      http.Get(sertlink+link.Text+'&print=1',mStream);
          mStream.Position := 0;
      crttext.lines.LoadFromStream(mStream);
    finally
      mStream.Free;
    end;
end;
procedure TForm1.Buttlink2Click(Sender: TObject);//Оставляем только Информацию и заголовки
var
  strt,endp,i:integer;
  text:Tstringlist;
begin
text:=Tstringlist.Create;
strt:=1;
endp:=1;
  while posex('colspan="2">',crttext.Text,endp)<>0 do
  begin
   strt:=posex('colspan="2">', crttext.Text,endp)+17;
   endp:=posex('</td>', crttext.Text, strt);
   text.Add (copy(crttext.text,strt,endp-strt));
 end;
 crttext.Text:=text.Text;
 text.Free;
end;
IvaniuS вне форума Ответить с цитированием
Старый 09.04.2013, 15:13   #5
IvaniuS
Форумчанин
 
Аватар для IvaniuS
 
Регистрация: 16.04.2007
Сообщений: 225
По умолчанию

Уважаемые формчане, видел темы где обходили капчу, не подскажите вот сдесь : http://irc.gov.ua/ua/Poshuk-v-YeDR.html ее реально обойти? боль уж база хорошая

Последний раз редактировалось IvaniuS; 10.04.2013 в 10:34.
IvaniuS вне форума Ответить с цитированием
Старый 17.07.2013, 18:56   #6
IvaniuS
Форумчанин
 
Аватар для IvaniuS
 
Регистрация: 16.04.2007
Сообщений: 225
По умолчанию

столкнулся с проблемой, они закрыли ту страницу, оставили только сертификаты просто, но эти сертификаты я получить могу только в UTF-8, сколько не искал как не пробовал преобразовать (UTF8Encode UTF8Decode ansitoutf8 и т.д.) все равно обрезает текст до 2 строк вместо целого текста, для того чтобы нормально смотрелось открываю сохраненный файл в ворде под кодировка-другое-Юникод(UTF-8)
в notepad++ кодировка-кодировать в utf8 (стандартно там ansi и получаю тоже что и в мемо)
Код:
procedure TUCCCheck.Button5Click(Sender: TObject);
var
  mStream: Tstringstream;
begin
    try
      mStream := tstringstream.Create('', TEncoding.UTF8);
      http.Get(sertlink+link.Text,mStream);
      mStream.Position := 0;
      crttext.Lines.LoadFromStream(mStream);
      crttext.Text:= Ansitoutf8(crttext.Text);// тут все перепробовал
    finally
      mStream.Free;
    end;
end;
пример тут
Код:
http.Get(http://www.ukrcc.com/files/download.php?file=3721042,mStream);

Последний раз редактировалось IvaniuS; 17.07.2013 в 19:01.
IvaniuS вне форума Ответить с цитированием
Старый 31.07.2013, 12:43   #7
rebiznesi
Новичок
Джуниор
 
Аватар для rebiznesi
 
Регистрация: 31.07.2013
Сообщений: 1
По умолчанию

Это все понятно, но это для программ постеров, а мне нужно несколько в ином направлении поработать. Я хочу создать клиента для удаленного наполнения базы и не могу соединиться с сервером. уже много компонетов пробовала и Инди и еще библиотеки и каждый раз во что то да упираюсь, может есть кусок кода готовый по данной теме?, если не туда запостила, так я не программист, я только учусь я я работаю в планетарии и мне просто нечем занятся и решила изучать делфи) спасибки.
привет кодеки:))
rebiznesi вне форума Ответить с цитированием
Ответ


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

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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
idHTTP, POST _ZixeL_ Общие вопросы Delphi 7 12.03.2013 16:19
IdHTTP post запрос darkblood0202 C++ Builder 6 02.05.2012 23:52
idhttp post roulis2844sasha Работа с сетью в Delphi 2 26.07.2011 10:15
Idhttp ответ на post запрос andrejjka Работа с сетью в Delphi 1 30.01.2011 13:41
POST idHTTP Pasha_Sh Работа с сетью в Delphi 7 11.06.2010 09:00