Antichat снова доступен.
Форум Antichat (Античат) возвращается и снова открыт для пользователей.
Здесь обсуждаются безопасность, программирование, технологии и многое другое.
Сообщество снова собирается вместе.
Новый адрес: forum.antichat.xyz
 |
|

13.07.2009, 16:30
|
|
Участник форума
Регистрация: 16.07.2008
Сообщений: 159
Провел на форуме: 1063538
Репутация:
240
|
|
Delphi POST Запрос
Как отправить post запрос с Delphi?
пример на PHP:
PHP код:
<form action="login.php" method="post">
<input name="email" type="text" value="" />
<input name="pass" type="password" value="" />
<input name="submit" type="button" value="Войти" />
</form>
|
|
|

13.07.2009, 16:40
|
|
Постоянный
Регистрация: 31.01.2008
Сообщений: 643
Провел на форуме: 6128108
Репутация:
445
|
|
Код:
procedure TForm1.Button1Click(Sender: TObject);
var
PostData:TStringList;
begin
PostData.Add('email=ololo@mail.ru');
PostData.Add('pass=mypass');
IdHTTP1.Post('http://sait.ru/login.php',PostData);
end;
Находу сбацал... Должно работать...
Ах да на форму компонент idHTTP1 (вкладка indy clients)
|
|
|

13.07.2009, 22:34
|
|
Участник форума
Регистрация: 16.07.2008
Сообщений: 159
Провел на форуме: 1063538
Репутация:
240
|
|
Спс пашет, вот так)
Код:
procedure TForm1.Button1Click(Sender: TObject);
var
PostData:TStringList;
begin
PostData:= TStringList.Create;
PostData.Add('email=ololo@mail.ru');
PostData.Add('pass=mypass');
IdHTTP1.Post('http://sait.ru/login.php',PostData);
end;
|
|
|

14.07.2009, 00:04
|
|
Members of Antichat - Level 5
Регистрация: 15.06.2008
Сообщений: 941
Провел на форуме: 5111568
Репутация:
2399
|
|
и на сокетах )
Код:
uses winsock
const hos = 'google.com';
function POST(URL,PACKET:string):string;
var
req{,data} : string;
buf : array[0..1500] of char;
wData : WSADATA;
addr : sockaddr_in;
sock : integer;
error : integer;
phe : PHostEnt;
begin
Result := '';
WSAStartup($0101, wData);
phe := gethostbyname(PChar(string(host)));
if phe = nil then begin
WSACleanup;
exit;
end;
sock := socket(AF_INET, SOCK_STREAM, IPPROTO_TCP);
if sock = INVALID_SOCKET then begin
WSACleanup;
exit;
end;
addr.sin_family := AF_INET;
addr.sin_port := htons(80);
addr.sin_addr := PInAddr(phe.h_addr_list^)^;
error := connect(sock, addr, sizeof(addr));
if error = SOCKET_ERROR then begin
closesocket(sock);
WSACleanup;
exit;
end;
req := PACKET;
if Send(Sock,pointer(req)^,length(req),0)=SOCKET_ERROR then exit;
fillchar(buf,sizeof(buf),0);
recv(Sock,buf,10000,0);//sizeof(buf
closesocket(Sock);
result:=buf;
end;
function ePOST(URL,_POST:string):string;
var req:string;
begin
req:='POST '+URL+' HTTP/1.1'#13#10+
'Host: '+host+#13#10+
'User-Agent: Opera/9.24 (Windows NT 5.1; U; en)'#13#10+
'Accept: */*;q=0.1'#13#10+
'Accept-Encoding: gzip,deflate'#13#10+
'Accept-Language: ru-RU,ru;q=0.9,en;q=0.8'#13#10+
'Connection: Keep-Alive'#13#10+
'Referer: http://vkontakte.ru/index.php'#13#10+
'Content-Length: '+inttostr(length(_POST))+#13#10+
'Content-Type: application/x-www-form-urlencoded'#13#10#13#10+_POST;
result:=POST(URL,req);
end;
ePOST('http://google.com','a=b&c=d&f=g&');
|
|
|

14.07.2009, 00:07
|
|
Постоянный
Регистрация: 29.04.2007
Сообщений: 496
Провел на форуме: 2715445
Репутация:
588
|
|
лучше уж на компонентах, а то этот код на сокетах ещё причёсывать и причёсывать.
|
|
|

15.07.2009, 10:57
|
|
Постоянный
Регистрация: 13.12.2008
Сообщений: 354
Провел на форуме: 1747641
Репутация:
175
|
|
Нет, на сокетах лучше.
|
|
|

16.07.2009, 22:17
|
|
Постоянный
Регистрация: 20.03.2009
Сообщений: 564
Провел на форуме: 991929
Репутация:
395
|
|
надо блин создать отдельную тему сетевое программирование.... задолбали однотипные вопросы по реализации HTTP запросов и работы с сокетами на различных языках....
|
|
|

29.07.2009, 14:44
|
|
Новичок
Регистрация: 27.03.2009
Сообщений: 1
Провел на форуме: 3081
Репутация:
0
|
|
На Wininet
Код:
var
hOpenHandle, hConnectHandle, hResourceHandle: Pointer;
begin
szHost:='www.sait.ru';
szData:=pansichar('email=ololo@mail.ru&pass=mypass&submit=''');
hOpenHandle:=InternetOpen(nil, INTERNET_OPEN_TYPE_PRECONFIG, nil, nil, 0);
hConnectHandle:=InternetConnect(hOpenHandle, szHost, 80, nil, nil, INTERNET_SERVICE_HTTP, 0, 0);
hResourceHandle:=HttpOpenRequest(hConnectHandle, 'POST', '/login.php', nil, nil, nil, INTERNET_FLAG_KEEP_CONNECTION, 0);
HttpSendRequest(hResourceHandle, 'Content-Type: application/x-www-form-urlencoded', 47, szData, lstrlen(szData));
InternetCloseHandle(hResourceHandle);
InternetCloseHandle(hConnectHandle);
InternetCloseHandle(hOpenHandle);
end;
|
|
|

29.07.2009, 15:27
|
|
Участник форума
Регистрация: 03.02.2009
Сообщений: 104
Провел на форуме: 270228
Репутация:
70
|
|
Сообщение от eLWAux
и на сокетах )
Код:
uses winsock
const hos = 'google.com';
function POST(URL,PACKET:string):string;
var
req{,data} : string;
buf : array[0..1500] of char;
wData : WSADATA;
addr : sockaddr_in;
sock : integer;
error : integer;
phe : PHostEnt;
begin
Result := '';
WSAStartup($0101, wData);
phe := gethostbyname(PChar(string(host)));
if phe = nil then begin
WSACleanup;
exit;
end;
sock := socket(AF_INET, SOCK_STREAM, IPPROTO_TCP);
if sock = INVALID_SOCKET then begin
WSACleanup;
exit;
end;
addr.sin_family := AF_INET;
addr.sin_port := htons(80);
addr.sin_addr := PInAddr(phe.h_addr_list^)^;
error := connect(sock, addr, sizeof(addr));
if error = SOCKET_ERROR then begin
closesocket(sock);
WSACleanup;
exit;
end;
req := PACKET;
if Send(Sock,pointer(req)^,length(req),0)=SOCKET_ERROR then exit;
fillchar(buf,sizeof(buf),0);
recv(Sock,buf,10000,0);//sizeof(buf
closesocket(Sock);
result:=buf;
end;
function ePOST(URL,_POST:string):string;
var req:string;
begin
req:='POST '+URL+' HTTP/1.1'#13#10+
'Host: '+host+#13#10+
'User-Agent: Opera/9.24 (Windows NT 5.1; U; en)'#13#10+
'Accept: */*;q=0.1'#13#10+
'Accept-Encoding: gzip,deflate'#13#10+
'Accept-Language: ru-RU,ru;q=0.9,en;q=0.8'#13#10+
'Connection: Keep-Alive'#13#10+
'Referer: http://vkontakte.ru/index.php'#13#10+
'Content-Length: '+inttostr(length(_POST))+#13#10+
'Content-Type: application/x-www-form-urlencoded'#13#10#13#10+_POST;
result:=POST(URL,req);
end;
ePOST('http://google.com','a=b&c=d&f=g&');
И нахер?
Придерживаясь твоего поста задам вопрос, зачем ты в браузере вводишь antichat.ru а не IP адрес античата)
Сокеты нужны там где они нужы.
|
|
|

29.07.2009, 15:29
|
|
Участник форума
Регистрация: 03.02.2009
Сообщений: 104
Провел на форуме: 270228
Репутация:
70
|
|
Сообщение от Neo][acK
На Wininet
Код:
var
hOpenHandle, hConnectHandle, hResourceHandle: Pointer;
begin
szHost:='www.sait.ru';
szData:=pansichar('email=ololo@mail.ru&pass=mypass&submit=''');
hOpenHandle:=InternetOpen(nil, INTERNET_OPEN_TYPE_PRECONFIG, nil, nil, 0);
hConnectHandle:=InternetConnect(hOpenHandle, szHost, 80, nil, nil, INTERNET_SERVICE_HTTP, 0, 0);
hResourceHandle:=HttpOpenRequest(hConnectHandle, 'POST', '/login.php', nil, nil, nil, INTERNET_FLAG_KEEP_CONNECTION, 0);
HttpSendRequest(hResourceHandle, 'Content-Type: application/x-www-form-urlencoded', 47, szData, lstrlen(szData));
InternetCloseHandle(hResourceHandle);
InternetCloseHandle(hConnectHandle);
InternetCloseHandle(hOpenHandle);
end;
Ужасный код(
Научись красиво оформлять...
|
|
|
|
 |
|
|
Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
|
|
|
|