Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

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=...');


Наверх

Титульная страница Поиск, карта сайта Написать письмо