Synapse post запрос в делфи 7

Discussion in 'С/С++, C#, Rust, Swift, Go, Java, Perl, Ruby' started by Farcar, 8 Jan 2012.

  1. Farcar

    Farcar Banned

    Joined:
    6 Nov 2011
    Messages:
    55
    Likes Received:
    0
    Reputations:
    0
    По советам использую синапс, все отлично, но есть один момент.
    Вот код:

    PHP:
    procedure TForm1.Button1Click(SenderTObject);
    var
    r:widestring;
    Res boolean;
    BodyTStringList;
    streamTStringStream;
    BodySTStringList;
    begin
    HTTP 
    := THTTPSend.Create;
     try
        
    Res := HTTP.HTTPMethod('GET','https://payments.chronopay.com/?product_id=004533-0001-0001');
        if 
    Res then
          begin
             edit2
    .Text:=HTTP.Cookies.Text;
             
    Body := TStringList.Create;
             
    Body.LoadFromStream(http.Document);
             
    r:=utf8toansi(Body.Text);
            
    delete(r,1,pos('<input type="hidden" name="token" value="',r)+40);
            
    delete(r,pos('"',r),length(r));
            
    edit1.Text:=r;
            
    begin
      stream
    :=TStringStream.Create('');
      
    stream.WriteString('step=2&action=enter_params&product_id=004533-0001-0001&token='+edit1.Text+'&phone=9015435643&product_price=554&approve_agreement=on');
      
    HTTP.Document.LoadFromStream(stream);
      if 
    HTTP.HTTPMethod('post','https://payments.chronopay.com/?' then
        begin
         BodyS 
    := TStringList.Create;
         
    BodyS.LoadFromStream(HTTP.Document);
         
    memo1.Text:=utf8toansi(BodyS.Text);
        
    end
    end
    ;
          
    end
      
    finally
        
    HTTP.Free;
      
    end;

    end;
    Проснифал в браузере, вот что показывает снифер:

    PHP:
    step=2&action=enter_params&product_id=004533-0001-0001&token=62560b59804020d1f609d04619056d54&phone=9015435643&product_price=554&approve_agreement=on
    Тестирую прогу, вывожу текст страници, и получаю: "Некорректное платежное средство".

    Подкажите что делаю не так, я так подозреваю что это token, но не знаю как правильно его спарсить
     
  2. Админ

    Админ New Member

    Joined:
    30 Dec 2011
    Messages:
    23
    Likes Received:
    3
    Reputations:
    5
    token нормально парсится?
    PHP:
    function TForm1.pars(textabstring): string;
    var
    temp:string;
    begin
    temp
    :=copy(text,pos(a,text)+length(a),length(text)-(pos(a,text)+length(a)-1));
    pars:=copy(temp,1,pos(b,temp)-1);
    end;

    r:=pars(r,'name="token" value="','"');
    Попробуй параметр в utf8 перевести перед записью в тело.
     
  3. Farcar

    Farcar Banned

    Joined:
    6 Nov 2011
    Messages:
    55
    Likes Received:
    0
    Reputations:
    0
    Люди, подскажите почему не пашет, оч нужно
     
  4. Metal-Core

    Metal-Core Member

    Joined:
    20 Sep 2011
    Messages:
    226
    Likes Received:
    21
    Reputations:
    0
    Может что с куками?
    не пробывал вытащить полученый текс(код php или html) сохранить в файл и посм в браузере? будет видно причину.
     
  5. Farcar

    Farcar Banned

    Joined:
    6 Nov 2011
    Messages:
    55
    Likes Received:
    0
    Reputations:
    0
    В ответе показывает хтмл код страницы:https://payments.chronopay.com/
     
  6. Rastamanka

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

    Joined:
    26 Nov 2008
    Messages:
    429
    Likes Received:
    11
    Reputations:
    7
    Тоже нужен совет по данной теме а именно в переменную r приходит ответ от сервера в котором латинские буквы и цифры но при сравнении этих данный с такими же данными в переменной string в условии оно не выполняется.
    Почему? Если если вывожу эти данные в ShowMessage и сравниваю их со своими они один в один похожи.

    P.S. Совет уже не нужен. В начало и конец добавлялось по пробелу которые не видны в ShowMessage. Функция Trim помогла.
     
    #6 Rastamanka, 10 Jan 2012
    Last edited: 10 Jan 2012
  7. xophet

    xophet Member

    Joined:
    16 Apr 2011
    Messages:
    617
    Likes Received:
    49
    Reputations:
    5
    а пример текста можно? что сравниваете?
     
    #7 xophet, 10 Jan 2012
    Last edited: 10 Jan 2012
  8. Farcar

    Farcar Banned

    Joined:
    6 Nov 2011
    Messages:
    55
    Likes Received:
    0
    Reputations:
    0
    Да, если можно кинте пример
     
  9. Farcar

    Farcar Banned

    Joined:
    6 Nov 2011
    Messages:
    55
    Likes Received:
    0
    Reputations:
    0
    Подскажите плз что не так, чтото код не пашет
     
  10. Админ

    Админ New Member

    Joined:
    30 Dec 2011
    Messages:
    23
    Likes Received:
    3
    Reputations:
    5
    Какой ты помощи ждёшь? Я тебе в первом посте привёл функцию для парсинга и задал вопрос, но ты его проигнорировал. Ты хочешь, чтобы тебе готовый код прислали? Ага :p
     
  11. Farcar

    Farcar Banned

    Joined:
    6 Nov 2011
    Messages:
    55
    Likes Received:
    0
    Reputations:
    0
    переводил, ничего, пользуюсь твоим кодом, но в ответ выдает другую страницу
     
  12. Админ

    Админ New Member

    Joined:
    30 Dec 2011
    Messages:
    23
    Likes Received:
    3
    Reputations:
    5
    token нормально парсится?
    Снифер в руки и вперёд!
    Сверяй что шлёт браузер и твой софт. Старайся закосить под браузер.
     
  13. Farcar

    Farcar Banned

    Joined:
    6 Nov 2011
    Messages:
    55
    Likes Received:
    0
    Reputations:
    0
    токен норм вроде парсится