Estoy tratando de realizar solicitudes HTTP desde Delphi utilizando las funciones de WinInet.Cómo enviar una solicitud HTTP POST en Delphi usando la API de WinInet
hasta ahora tengo:
function request:string;
var
hNet,hURL,hRequest: HINTERNET;
begin
hNet := InternetOpen(PChar('User Agent'),INTERNET_OPEN_TYPE_PRECONFIG or INTERNET_OPEN_TYPE_PRECONFIG, nil, nil, 0);
if Assigned(hNet) then
begin
try
hURL := InternetConnect(hNet,PChar('http://example.com'),INTERNET_DEFAULT_HTTP_PORT,nil,nil,INTERNET_SERVICE_HTTP,0,DWORD(0));
if(hURL<>nil) then
hRequest := HttpOpenRequest(hURL, 'POST', PChar('param=value'),'HTTP/1.0',PChar(''), nil, INTERNET_FLAG_RELOAD or INTERNET_FLAG_PRAGMA_NOCACHE,0);
if(hRequest<>nil) then
HttpSendRequest(hRequest, nil, 0, nil, 0);
InternetCloseHandle(hNet);
except
on E : Exception do
ShowMessage(E.ClassName+' error raised, with message : '+E.Message);
end;
end
end;
Pero esto no hace nada (estoy oliendo el tráfico http red para ver si funciona). He utilizado con éxito InternetOpenURL pero también necesito enviar una solicitud POST y esa función no lo hace.
¿Podría alguien mostrarme un ejemplo simple? El resultado que quiero es obtener la página de respuesta http en una var como cadena.
Encontré la fuente de su código para que pueda citar al autor original. Cambié el código para eliminar las declaraciones de caso booleanas mal concebidas, y cambié el referente para que no mienta y pretenda ser Firefox 3.0.10. –
No puedo encontrar qué unidad contiene ParseURL, o tal vez es una rutina personalizada. El código en: http://delphi.pastebin.com/f1ea3a752 es algo diferente y no usa ParseURL. – lkessler
¿Cómo agregaría un valor de encabezado personalizado a la solicitud de publicación? – hikari