![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
POST + Delphi
ph0sgen © (2006-10-25 03:44:00)Доброго времени суток, уважаемые мастера.
Пытаюсь отправить данные скрипту методои POST. ничего не получается.
Код:
procedure SendPOSTData(const szHost, szPath, szData: PChar);
var
WSAData : TWSAData;
hSock : Integer;
addr : sockaddr_in;
phe : PHostEnt;
szBuff : array [0..255] of Char;
begin
WSAStartup($0101, WSAData);
hSock := socket(2, 1, 6);
case hSock of -1 : Exit; end;
addr.sin_family := 2;
addr.sin_port := htons(80);
addr.sin_addr.s_addr := inet_addr(szHost);
case addr.sin_addr.s_addr of
-1 : begin
phe := gethostbyname(szHost);
case (phe = nil) of
true : begin
closesocket(hSock);
Exit;
end;
end;
addr.sin_addr := PInAddr(phe.h_addr_list^)^;
end;
end;
case connect(hSock, addr, sizeof(addr)) of
-1 : begin
closesocket(hSock);
WSACleanup;
Exit;
end;
end;
lstrcpy(szBuff, 'POST ');
lstrcat(szBuff, szPath);
lstrcat(szBuff, ' HTTP/1.0'#13#10#13#10);
lstrcat(szBuff, szData);
lstrcat(szBuff, #13#10#13#10);
send(hSock, szBuff, lstrlen(szBuff), 0);
closesocket(hSock);
WSACleanup;
end;
что я делаю не правильно?
спасибо за внимание.
Ketmar (2006-10-25 15:42:00) [1]>[7] Чапаев(c) 25-Oct-2006, 15:14
>критически важным его в данном случае считать не приходится.
не спорю. но лучше сразу научить, чем потом переучивать.
зыж я в CDM о нём забыл. ничего, схавало. %-)
Чапаев (2006-10-25 15:14:00) [2]> [6] Ketmar © (25.10.06 10:54)
Content-Type не помешает, конечно, но и критически важным его в данном случае считать не приходится.
Ketmar (2006-10-25 10:54:00) [3]в-третьих, никто не забыл про то, что данные обычно -- url-encoded? и соответствующий content-type?
Чапаев (2006-10-25 10:14:00) [4]Во-первых, это длина только "тела", во-вторых, #13#10 после тела передавать незачем.
ph0sgen (2006-10-25 05:15:00) [5]спасибо. попробую.
ph0sgen (2006-10-25 05:15:00) [6]а ContentLength это общая длина?
Slym (2006-10-25 04:08:00) [7]ничего не получается? Савсем ничего... Неповезло в жизни...
Или что конкретно не получается или код ошибки или что сервер возвращает...
На вскидку не передаешь серверу ContentLength, а они иногда на это обижаются...
Иногда требуется Host, у тебя его тоже нету
ph0sgen (2006-10-25 03:48:00) [8]использую процедуру так:
SendPOSTData('some_host.com', '/script.php?param', 'data1=...&data2=...&data3=...');