[ Delphi / Pascal ] — начинающим: задаем вопросы (архивная - 2015)

Discussion in 'С/С++, C#, Rust, Swift, Go, Java, Perl, Ruby' started by banned, 6 May 2007.

Thread Status:
Not open for further replies.
  1. hav0k

    hav0k New Member

    Joined:
    17 Feb 2008
    Messages:
    4
    Likes Received:
    0
    Reputations:
    0
    Не могу понять по чему обрезается post запрос. В начале на несколько байт и в конце на 1. delphi 2009.

    Code:
    procedure TForm1.Button1Click(Sender: TObject);
    
    const
     HTTPAgent   = 'Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.0; SLCC1; .NET CLR 2.0.50727; Media Center PC 5.0; .NET CLR 3.0.04506; InfoPath.2; .NET CLR 3.5.21022)';
     FlexEngine  = 'http://127.0.0.1;
     FlexContent = #$00#$03#$00#$00#$00#$01#$00#$0D#$75#$73#$65#$72#$2E#$73#$65#$6E#$64#$47#$69#$66#$74#$00#$02#$2F#$31#$00#$00#$00#$A2#$0A#$00#$00#$00#$01#$11#$0A#$0B#$01#$15#$66#$72#$69#$65#$6E#$64#$5F#$75#$69#$64#$06#$0F#$35#$35#$30#$34#$33#$38#$38#$03#$6B#$06#$41#$30#$64#$30#$62#$39#$37#$66#$32#$62#$61#$34#$38#$35#$37#$38#$30#$65#$35#$33#$31#$37#$33#$32#$30#$39#$33#$32#$36#$31#$34#$39#$36#$03#$74#$06#$15#$31#$32#$34#$39#$39#$31#$34#$32#$37#$39#$0F#$67#$69#$66#$74#$5F#$69#$64#$06#$11#$31#$39#$36#$39#$31#$30#$31#$35#$11#$61#$75#$74#$68#$63#$6F#$64#$65#$06#$11#$35#$31#$35#$31#$38#$37#$34#$30#$0F#$6D#$65#$73#$73#$61#$67#$65#$06#$01#$03#$6C#$06#$05#$72#$75#$13#$73#$65#$6E#$64#$5F#$74#$79#$70#$65#$04#$01#$0F#$66#$61#$72#$6D#$75#$69#$64#$06#$0F#$38#$38#$32#$32#$35#$32#$39#$01#$00;
     ContentType = 'application/x-amf';
    var
     SL: TStringList;
    begin
     idHTTP1.ProxyParams.ProxyServer:='127.0.0.1';
     idHTTP1.ProxyParams.ProxyPort:=8888;
     IdHTTP1.Request.UserAgent := HTTPAgent;
    
     SL := TStringList.Create;
     SL.Add(FlexContent);
    
     IdHTTP1.Request.ContentType := ContentType;
    
     try
     Showmessage(IdHTTP1.Post(FlexEngine, SL));
     finally
      SL.Free;
    end;
    //Memo1.Text := t.DataString;
    end;
    
     
    #3981 hav0k, 23 Aug 2009
    Last edited: 23 Aug 2009
  2. ErrorNeo

    ErrorNeo Elder - Старейшина

    Joined:
    2 May 2009
    Messages:
    923
    Likes Received:
    838
    Reputations:
    402
    1.пользуй теги
    Code:
    [/cоde]
    2. с чего взял что обрезается - чем докажешь?
    логи с локального сниффера с студию.
    
    nirsoft.net - там SmartSniff и SocketSniff.
    Можешь ими посмотреть то, какие на самом деле шлются и принимаются запросы.
    И показать нам.
     
    #3982 ErrorNeo, 23 Aug 2009
    Last edited: 23 Aug 2009
  3. hav0k

    hav0k New Member

    Joined:
    17 Feb 2008
    Messages:
    4
    Likes Received:
    0
    Reputations:
    0
    Я принимал запросы чарльзом через виртуальный прокси сервер.

    То есть я словил запрос этим же чарльзом и вставил в код (FlexContent).
    Потом посмотрел опять через чарльз запрос не такой. Обрезан с начала и с конца.
    Завтра лог скину. #$00 вроде их то и обрезает...
     
    #3983 hav0k, 23 Aug 2009
    Last edited: 23 Aug 2009
  4. cremator (c)

    cremator (c) Elder - Старейшина

    Joined:
    20 Jun 2008
    Messages:
    258
    Likes Received:
    72
    Reputations:
    0
    Тут можно придумывать массу вариантов.. Но если ты будешь в главном потоке проверять пришол ли ответ, то вся форма будет висеть. Создай лучше новый поток, сразу после создания потока GetData,в котором ты будешь ожидать пока не придет пакет. Можешь даже заюзать TEvent события для ожидания пока завершится поток
    (event.waitfor(infinite); )
     
  5. НTL

    НTL Elder - Старейшина

    Joined:
    26 Jan 2008
    Messages:
    715
    Likes Received:
    205
    Reputations:
    -26
    Как при вызове потоков с помощью: CreateThread()
    Очистить память по завершению потоков?
     
  6. slesh

    slesh Elder - Старейшина

    Joined:
    5 Mar 2007
    Messages:
    2,702
    Likes Received:
    1,224
    Reputations:
    455
    2 НTL ты хоть сам понял что сказал?
     
  7. НTL

    НTL Elder - Старейшина

    Joined:
    26 Jan 2008
    Messages:
    715
    Likes Received:
    205
    Reputations:
    -26
    ммм...

    В общем нужно по завершению потока удалить его...
     
  8. slesh

    slesh Elder - Старейшина

    Joined:
    5 Mar 2007
    Messages:
    2,702
    Likes Received:
    1,224
    Reputations:
    455
    вконце функции потока ставь ExitThread(0) типа
    Code:
    DWORD _stdcall ThreadProc(void * p)
    {
    ............
     ExitThread(0);
     return 0;
    }
    
    Или на Delphi
    Code:
    function ThreadProc(p:pointer):DWORD; stdcall;
    begin
    
    .............
     ExitThread(0);
     result := 0;
    end;
    
     
    #3988 slesh, 23 Aug 2009
    Last edited: 24 Aug 2009
  9. НTL

    НTL Elder - Старейшина

    Joined:
    26 Jan 2008
    Messages:
    715
    Likes Received:
    205
    Reputations:
    -26
    Все равно выдает ошибку, если снова пытаться создать потоки
     
  10. slesh

    slesh Elder - Старейшина

    Joined:
    5 Mar 2007
    Messages:
    2,702
    Likes Received:
    1,224
    Reputations:
    455
    Может ты не правильно создаеш? или недоконца доходит функция завершения.
    когда создаеш поток то не забывай закрывать дискриптор
     
    1 person likes this.
  11. НTL

    НTL Elder - Старейшина

    Joined:
    26 Jan 2008
    Messages:
    715
    Likes Received:
    205
    Reputations:
    -26
    Вот:

    Code:
    procedure Getdata;
    var
     len:integer;
     ret:string;
    begin
    form1.Memo2.Lines.Add(inttostr(random(111)));
    ExitThread(0);
    end;
    
    
    procedure TForm1.Button8Click(Sender: TObject);
    var
     thId:cardinal;
       i : Integer;
    begin
    For i := 1 to 100 do
    begin
    CreateThread(0,0,@Getdata,nil,0,thid);
    end;
    end;
    
    procedure TForm1.FormCreate(Sender: TObject);
    var
     ws:TWSAData;
    begin
     WsaStartup($202,ws);
     application.Title:='HTTP Sender';
    end;
    Это из HTTP Sender, но при попытки снова создать потоки получаем ошибку, я не думаю что здесь не доходит до: ExitThread(0);
     
  12. 2pick

    2pick Elder - Старейшина

    Joined:
    17 Mar 2007
    Messages:
    117
    Likes Received:
    39
    Reputations:
    2
    Глюк при чтении файла... Текстовые файлы читает наура, а вот двоичные (картинки, архивы и т.п.) только первые 5-10 байт. Где косяк?
    Code:
    Function GetBuff(szFile: PChar): PChar;
    Var
    hFile, dwSize, dwBytes: DWORD;
    Begin
    Result:='';
    hFile:=CreateFile(szFile, GENERIC_READ, 0, nil, OPEN_EXISTING, 0, 0);
    If hFile<>INVALID_HANDLE_VALUE then
    Begin
    dwSize:=GetFileSize(hFile, nil);
    Result:=VirtualAlloc(nil, dwSize, MEM_COMMIT, PAGE_READWRITE);
    ReadFile(hFile, Result^, dwSize, dwBytes, nil);
    End;
    CloseHandle(hFile);
    End;
    
     
  13. S[N]EP

    S[N]EP Elder - Старейшина

    Joined:
    29 Aug 2008
    Messages:
    102
    Likes Received:
    28
    Reputations:
    10
    Здраствуйте...хелп плз мне нужно через делфи заполнить форму... http://217.197.113.50/titan/index.php капчу вывести в программу и через Тедит....
    вот то что я делаю
    PHP:
    procedure TForm1.Button1Click(SenderTObject); //тут я отправляю данные
    var
      
    Http  TidHttp;
      
    CM    TidCookieManager;
      
    Data  TStringList;
      
    Strpage :string;
      
    UserID,  UserName  :  String;
      
    integer;
    begin
      
    try
        
    Http := TIdHTTP.Create(Self);
        
    Data := TStringList.Create;
        
    CM := TidCookieManager.Create(Http);
        
    Http.AllowCookies := true;
        
    Http.CookieManager := CM;
        
    Http.HandleRedirects := true;

        
    Http.Request.Host:='217.197.113.50';
        
    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://217.197.113.50/titan/';

        
    Data.Add('char='+Edit1.Text);
        
    Data.Add('keystring='+Edit2.Text);
        
    StrPage := Http.Post('http://217.197.113.50/titan/index.php'Data);
      finally
        
    Data.Free;
        
    CM.Free;
        
    Http.Free;
      
    end;
     
    Showmessage(StrPage);
    end;
    procedure TForm1.Button2Click(SenderTObject); //тут я получаю картинку капчи
    begin
    Form1
    .WebBrowser1.Navigate('http://217.197.113.50/titan/titcaptha/index.php');
    end;
    когда всё ввожу получаю ответ 'Ошибка: Неверно введен код с картинки.'
     
    #3993 S[N]EP, 24 Aug 2009
    Last edited: 24 Aug 2009
  14. 2pick

    2pick Elder - Старейшина

    Joined:
    17 Mar 2007
    Messages:
    117
    Likes Received:
    39
    Reputations:
    2
    Чтоб картинку получить - нужно наверное какие-то параметры передавать (из кукисов или еще откуда-то)?

    Имхо - дай нормальную ссылку на форму, а не айпи... очень похоже что сплойт тестишь :)
     
  15. S[N]EP

    S[N]EP Elder - Старейшина

    Joined:
    29 Aug 2008
    Messages:
    102
    Likes Received:
    28
    Reputations:
    10
    всмысле дай норм ссылку - это и есть ссылка!
    это не сплойт) это для того чтобы бонусы с ла2топа получать
    http://217.197.113.50/titan/index.php - форма получения бонуса
     
  16. 2pick

    2pick Elder - Старейшина

    Joined:
    17 Mar 2007
    Messages:
    117
    Likes Received:
    39
    Reputations:
    2
    В смысле с нормальным доменом
     
  17. S[N]EP

    S[N]EP Elder - Старейшина

    Joined:
    29 Aug 2008
    Messages:
    102
    Likes Received:
    28
    Reputations:
    10
    нормального домена нету....есть главная страница сервера Http://la2titan.ru а вот - http://la2titan.ru/sections/view/25 - там про получение бонуса! но там ссылка на то что я написал!
     
  18. 2pick

    2pick Elder - Старейшина

    Joined:
    17 Mar 2007
    Messages:
    117
    Likes Received:
    39
    Reputations:
    2
    Довольно таки интересно что гуглом только одна страница проиндексирована
     
  19. S[N]EP

    S[N]EP Elder - Старейшина

    Joined:
    29 Aug 2008
    Messages:
    102
    Likes Received:
    28
    Reputations:
    10
    хз....при желании можеш зайти на форум и убедиться что это действительно сервер!
    p.s
    помогите плз
     
    #3999 S[N]EP, 24 Aug 2009
    Last edited: 24 Aug 2009
  20. cremator (c)

    cremator (c) Elder - Старейшина

    Joined:
    20 Jun 2008
    Messages:
    258
    Likes Received:
    72
    Reputations:
    0
    S[N]EP,попробуй картинку получать через того же индейца, которым ты отправляешь свой пост. Сохрани ее в поток и выведи в TImage. И посмотри какие может номера сессии браузер еще передает, когда капчу запрашивает
     
    1 person likes this.
Thread Status:
Not open for further replies.