Показать сообщение отдельно

  #18  
Старый 15.07.2009, 11:58
Chrome~
Постоянный
Регистрация: 13.12.2008
Сообщений: 354
Провел на форуме:
1747641

Репутация: 175
По умолчанию

Я нашел твою ошибку. Дело в том, что ты не правильно отправляешь данные.
Вот, переделал функцию отправки:
Код:
procedure TForm1.Button1Click(Sender: TObject);
var
 s:TSocket;
 Ws:TWSAData;
 addr:sockaddr_in;
 se,re:ansistring;
 login:string;
 buf: array[1..5000] of Char;
begin
 Memo1.Lines.Add('Подкл. WinSock');
 if WSAStartup($101,Ws)=-1 then
  begin
   Memo1.Lines.Add('-Ошибка');
   exit;
  end
 else
  begin
   Memo1.Lines.Add('-Ок');
  end;
 Memo1.Lines.Add('Создание сокета');
 s:=socket(af_inet, sock_stream, 0);
 if s=-1 then
  begin
   Memo1.Lines.Add('-Ошибка');
   exit;
  end
 else
  begin
   Memo1.Lines.Add('-Ок');
  end;
 addr.sin_family:=af_inet;
 addr.sin_port:=htons(80);
 addr.sin_addr.S_addr:=inet_addr('89.188.101.138');
 Memo1.Lines.Add('Установка связи с хостом');
 if connect(s,addr,sizeof(addr))=-1 then
  begin
   Memo1.Lines.Add('-Ошибка');
   closesocket(s);
   exit;
  end
 else
  begin
   Memo1.Lines.Add('-Ок');
  end;
 login:='SAVEURL=&SERVER=1&account=111&pass=222&submit=%C2%EE%E9%F2%E8';
 se:='POST /cgi/l2isapi.dll/l2login HTTP/1.0'+#13#10+
     'User-Agent: Opera/9.80 (Windows NT 5.1; U; en) Presto/2.2.15 Version/10.00'+#13#10+
     'Accept: text/html, application/xml;q=0.9, application/xhtml+xml, image/png, image/jpeg, image/gif, image/x-xbitmap, */*;q=0.1'+#13#10+
     'Accept-Language: ru-RU,ru;q=0.9,en;q=0.8'+#13#10+
     'Accept-Charset: iso-8859-1, utf-8, utf-16, *;q=0.1'+#13#10+
     'Accept-Encoding: deflate, gzip, x-gzip, identity, *;q=0'+#13#10+
     'Cookie: spylog_test=1'+#13#10+
     'Cookie2: $Version=1'+#13#10+
     'Host: lineage.ru'+#13#10+
     'Connection: Keep-Alive'+#13#10+
     'Content-Length: '+IntToStr(Length(login))+#13#10+
     'Content-Type: application/x-www-form-urlencoded'+#13#10+#13#10+login;
 CopyMemory(@buf, PChar(se), Length(se));
 send(s,buf,SizeOf(buf),0);
 recv(s,buf,SizeOf(buf),0);
 re:=buf;
 Memo2.Text:=re;
 closesocket(s);
end;
Дело в том, что нужно отправлять не строку типа string, а массив типа Char.

P.S. Если ничего не знаешь про человека, не спеши с выводами.
 
Ответить с цитированием