Lazarus+synapse не проходит авторизация на сервере

Kom

Пользователь
Регистрация
10 Янв 2012
Сообщения
11
Одобрения
0
#1
Такая беда: пытаюсь авторизоваться на сервере, отсылаю post-запрос на страницу с авторизацией, при включённом httpanalyzer запрос проходит, авторизация проходит нормально, всё работает как часы, при выключенном сниффере сервер возвращает 400-Bad Request. Где накосячил-не пойму.
Вот код:
PHP:
Client.Clear;
  s := 'utf8=' + EncodeURLElement('✓') + '&authenticity_token='+ EncodeURLElement(authtoken) +
    '&' + EncodeURLElement('[ref]') + '=' +
    '&' + EncodeURLElement('[wallet]') + '=' + EncodeURLElement(wallet) + '&commit=' +
    'SIGN+IN';
  s:= UTF8Encode(s);
  Client.Document.Write(pchar(s)^, Length(s));
  Client.MimeType := 'application/x-www-form-urlencoded; charset=utf-8';
  Client.Headers.Add('Content-Length: ' + inttostr(Length(s)));
  Client.Headers.Add('Referer: http://boxbit.co.in/sign_in');
  Client.Headers.Add('Accept-Encoding: gzip, deflate');
  Client.Headers.Add('Accept-Language: ru-RU,ru;q=0.8,en-US;q=0.5,en;q=0.3');
  Client.Headers.Add('Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8');
  if Client.HTTPMethod('POST', 'http://boxbit.co.in/sign_in_account') then
  begin
    if Client.ResultCode = 302 then
    begin
      parser.Expression := 'Location: (http://.*)';
      for i := 0 to Client.Headers.Count - 1 do
        if parser.exec(Client.Headers[i]) then
          redirURL := parser.Match[1];
      if CompareStr('http://boxbit.co.in/', redirURL) = 0 then
        log.Add('Авторизация прошла успешно!')
      else
        log.Add('Авторизация не удалась!');
    end
    else
    begin
      log.Add('s length is '+inttostr(Length(s)));
      s := Client.Headers.Text;
      parsepage := ReadStrFromStream(Client.Document, Client.Document.Size);
      log.Add(s);
      log.Add(parsepage);
      log.SaveToFile('log\boxbitlog.txt');
    end;
  end;
Может кто что подсказать?

Всё, сам разобрался, Content-length был лишним, теперь всё работает