Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2007.04.15;
Скачать: CL | DM;

Вниз

POST + Delphi   Найти похожие ветки 

 
ph0sgen ©   (2006-10-25 03:44) [0]

Доброго времени суток, уважаемые мастера.

Пытаюсь отправить данные скрипту методои 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;



что я делаю не правильно?

спасибо за внимание.


 
ph0sgen ©   (2006-10-25 03:48) [1]

использую процедуру так:


SendPOSTData("some_host.com", "/script.php?param", "data1=...&data2=...&data3=...");


 
Slym ©   (2006-10-25 04:08) [2]

ничего не получается? Савсем ничего... Неповезло в жизни...
Или что конкретно не получается или код ошибки или что сервер возвращает...
На вскидку не передаешь серверу ContentLength, а они иногда на это обижаются...
Иногда требуется Host, у тебя его тоже нету


 
ph0sgen ©   (2006-10-25 05:15) [3]

спасибо. попробую.


 
ph0sgen ©   (2006-10-25 05:15) [4]

а ContentLength это общая длина?


 
Чапаев ©   (2006-10-25 10:14) [5]

Во-первых, это длина только "тела", во-вторых, #13#10 после тела передавать незачем.


 
Ketmar ©   (2006-10-25 10:54) [6]

в-третьих, никто не забыл про то, что данные обычно -- url-encoded? и соответствующий content-type?


 
Чапаев ©   (2006-10-25 15:14) [7]

> [6] Ketmar ©   (25.10.06 10:54)
Content-Type не помешает, конечно, но и критически важным его в данном случае считать не приходится.


 
Ketmar ©   (2006-10-25 15:42) [8]

>[7] Чапаев(c) 25-Oct-2006, 15:14
>критически важным его в данном случае считать не приходится.
не спорю. но лучше сразу научить, чем потом переучивать.

зыж я в CDM о нём забыл. ничего, схавало. %-)



Страницы: 1 вся ветка

Текущий архив: 2007.04.15;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.05 c
15-1174515623
Галинка
2007-03-22 01:20
2007.04.15
Google подаст


9-1147216335
3DMax
2006-05-10 03:12
2007.04.15
Оптимизация OpenGL приложений


2-1174990327
Dmitry_177
2007-03-27 14:12
2007.04.15
INI-файлы на API


15-1174401370
Ш-К
2007-03-20 17:36
2007.04.15
Чем хелперы отличаются от адаптеров?


15-1173574666
WME
2007-03-11 03:57
2007.04.15
Японы дети переходят с Windows ME на Линукс