Делаю клиент для веб-чата. Посылаю Post-запрос авторизации, получаю ответ, что авторизирован, файл найдет и в теле фигня закодированная GZIP`ом.
Делаю декомпрессию функцией взятой с www.vkarlsen.no/lvk/current/LVK_Full.zip, и функция декомпрессии выдает ошибку чтения. Что за хрень???
Вот ответ на пост запрос:
| Код | HTTP/1.1 302 Found Date: Mon, 21 Aug 2006 16:52:35 GMT Server: Apache/2.2.2 (Unix) mod_fastcgi/2.4.2 PHP/5.1.4-310 X-Powered-By: PHP/5.1.4-310 Set-Cookie: Test=Enabled; expires=Tue, 22-Aug-2006 02:52:35 GMT Set-Cookie: PHPSESSID=8f9a538e1e16caeebae30980c112c881; path=/ Expires: Thu, 19 Nov 1981 08:52:00 GMT Cache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0 Pragma: no-cache Location: Community.php Vary: Accept-Encoding Content-Encoding: gzip Content-Length: 5697 Connection: close Content-Type: text/html; charset=windows-1251
|
Вот код:
| Код | procedure TFormMain.SyncAuthorization; var request, URL, content, Header, Body: string; ChatUser: TUser; begin TcpClient1.RemoteHost:='psychology.net.ru'; TcpClient1.RemotePort:='80'; url:='/comcom/index.php'; content:='Login=login&Password=password&Room=1&Sex=%CC&Enter=+%C2%EE%E9%F2%E8+%E2+%F7%E0%F2+'; Vars := 'Host: psychology.net.ru'+CRLF+ 'User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; ru; rv:1.8.0.6) Gecko/20060728 Firefox/1.5.0.6'+CRLF+ 'Accept: text/xml,application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5'+CRLF+ 'Accept-Language: ru-ru,ru;q=0.8,en-us;q=0.5,en;q=0.3'+CRLF+ 'Accept-Encoding: gzip,deflate'+CRLF+ 'Accept-Charset: windows-1251,utf-8;q=0.7,*;q=0.7'+CRLF+ 'Keep-Alive: 300'+CRLF+ 'Connection: keep-alive'+CRLF+ 'Referer: http://psychology.net.ru/comcom/'+CRLF+ //'Cookie: Test=Enabled; phpbb2mysql_data=a%3A7D; PHPSESSID=14fac046911'+CRLF+ 'Content-Type: application/x-www-form-urlencoded'+CRLF; request:='POST '+URL+' HTTP/1.0'+CRLF; request:=request+ vars + 'Content-Length: '+inttostr(length(content))+CRLF; try TcpClient1.Open; ProgressBar1.Position := 35; TcpClient1.Sendln(request+CRLF+content,''); ProgressBar1.Position := 50; Header:=TcpClient1.Receiveln(CRLF+CRLF); Body:=TcpClient1.Receiveln(''); Memo1.Lines.Add(Header + CR + Body + '#13'); Memo1.Lines.Add('Community.php'); ShowMessage('Размер загруженных данных: '+IntToStr(inStream.Size div 1024)+' кб.'); try Body := gZipDecompress(Body); except end; isEntered2Chat := true; except isEntered2Chat := false; end; TcpClient1.Close; ChangeHeaders; end;
|
|