Форум: "Сети";
Текущий архив: 2002.12.02;
Скачать: [xml.tar.bz2];
ВнизКак передать параметры GET методом с помощью WinInet? Найти похожие ветки
← →
LSW (2002-10-04 22:42) [0]Подскажите пожалуйста как можно передать CGI скрипту данные GETом в доках нашел только POST вот строчка.
InternetOpenURL(hHttpSession," http://www/cgi-bin/myCGI.exe?myParam",nil,0,0,0);
Может кто знает ? Компоненты с FastNet использовать не хочется. Зарание спасибо
← →
int64 (2002-10-05 01:22) [1]В таком случае, не надо вешать изменения на onMouseMove.
И смю сюда:
http://delphi.mastak.com/cgi-bin/forum.pl?look=1&id=1033634530&n=5
← →
int64 (2002-10-05 01:23) [2]Не попал в ветку. Скз.
← →
int64 (2002-10-05 02:30) [3]Думаю, сейчас попал правильно :)
function WinINetPostData(Url: string; const Data : string): string;
const
sHeader = "Content-Type: application/x-www-form-urlencoded" + #13#10;
var
hInternetOpen,
hInternetConnect,
hHttpOpenRequest : HINTERNET;
Buffer: array[0..1024] of char;
BytesRead: cardinal;
sServer, sScript : string;
begin
Result := "";
// Parse out stuff
if Pos("http://", Url) > 0 then
Delete(Url, 1, Length("http://"));
sServer := Copy(Url, 1, Pos("/", Url) - 1);
sScript := Copy(Url, Pos(sServer, URL) + Length(sServer), Length(Url));
// Initialize WINET
hInternetOpen := InternetOpen("http generic", INTERNET_OPEN_TYPE_PRECONFIG, nil, nil, 0);
if Assigned(hInternetOpen) then
begin
try
// Connect to server
hInternetConnect := InternetConnect(hInternetOpen, PChar(sServer), 80,
nil, "HTTP/1.0", INTERNET_SERVICE_HTTP, 0, 0);
if Assigned(hInternetConnect) then
begin
try
// Start requesting page
hHttpOpenRequest := HttpOpenRequest(hInternetConnect, "POST", PChar(sScript), "HTTP/1.0", "", "text/*", INTERNET_FLAG_RELOAD, 0);
if Assigned(hHttpOpenRequest) then
begin
try
// Add headers/form info
HttpAddRequestHeaders(hHttpOpenRequest, sHeader, Length(sHeader), HTTP_ADDREQ_FLAG_REPLACE or HTTP_ADDREQ_FLAG_ADD);
HttpSendRequest(hHttpOpenRequest, nil, 0, PChar(Data), Length(Data));
// Download junk
FillChar(Buffer, SizeOf(Buffer), 0);
repeat
Result := Result + Buffer;
FillChar(Buffer, SizeOf(Buffer), 0);
InternetReadFile(hHttpOpenRequest, @Buffer, SizeOf(Buffer), BytesRead);
until BytesRead = 0;
finally
InternetCloseHandle(hHttpOpenRequest);
end;
end else
EPostDataError.Create("Unable to request page!");
finally
InternetCloseHandle(hInternetConnect);
end;
end else
EPostDataError.Create("Unable to connect to server!");
finally
InternetCloseHandle(hInternetOpen);
end;
end else
raise EPostDataError.Create("Unable to initialize Wininet");
end;
Разница между POST и GET задаётся в HttpOpenRequest.
P.S. Может лучше FastNet?
← →
LSW (2002-10-05 11:23) [4]Спасибо за пример
Страницы: 1 вся ветка
Форум: "Сети";
Текущий архив: 2002.12.02;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.007 c