Muy buenas forer@s !!!
Mi gran duda y llevo un mes dándole al coco y a la MSDN para saber como funciona este componente -ServerXMLHTTP- mi gran problema es como pasar parametros una pagina mediante POST !!!.
- FUNCIONAMIENTO DEL PROGRAMA -
Tengo que conectarme a una página de un servidor X con un usuario y una contraseña y enviar por post un texto xml, QUE TIENE OTRO USUARIO Y CONTRASEÑA) y me duelve el resultado de la consulta enviada.
- EJEMPLO (mi código) -
Código:
procedure TForm1.FormCreate(Sender: TObject);
var
str: String;
kk: String;
ServerXMLHTTP: TServerXMLHTTP40;
begin
Memo1.Clear;
str := 'https://xxx.com/Tariff.asp'; <- sin las WWW -obligado-
// mensaje XML a enviar
kk := '<DS_REQUEST><COMMUNIC '+
'ID_PARTNER="USUARIO2" PWD="CONTRASEÑA2" PN="11"/>'+
'<CAR_SEARCH TM_ID="00017" MODEL_ID="" MODEL="XSARA"'+
' VERSION="1.9" NB_DOOR="5" FUEL="D" POWER=""/>'+
'</DS_REQUEST>';
ServerXMLHTTP:=TServerXMLHTTP40.Create(NIL);
ServerXMLHTTP.ConnectKind:=ckRunningOrNew;
ServerXMLHTTP.open('POST',str,False,'USUARIO1','CONTRASEÑA1');
ServerXMLHTTP.setRequestHeader('WWW-Authenticate','Basic');
ServerXMLHTTP.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
//////////////////////////////////////
PASA DE MÍ , NO ME HACE CASO !!!!!
ServerXMLHTTP.send('xmlQuestion=' + kk); <-- según MSDN así debería funcionar
/////////////////////////////////////
if ServerXMLHTTP.status=200 Then
Memo1.lines.Add(ServerXMLHTTP.responseText)
else // ERROR
Memo1.lines.Add('ERROR:' + ServerXMLHTTP.statusText + ' -- ' + IntToStr(ServerXMLHTTP.status));
ServerXMLHTTP.Free;
{
¡¡¡¡ EJEMPLO MSDN QUE LOGICAMENTE NO ME FUNCIONA !!!!
Y ES LO QUE QUIERO HACER, PERO EN DELPHI :'(
Dim xmlHttp As MSXML2.ServerXMLHTTP50
Set xmlHttp = New MSXML2.ServerXMLHTTP50
URLString = "HTTPS://www.intercepteft.com/uploadach.icp"
SendString = "login=someuser&pass=somepass&filename=c:\somefile.ach"
xmlHttp.open "POST", URLstring
xmlHttp.setRequestHeader "Content-Type","application/x-www-form-urlencoded"
xmlHttp.setRequestHeader "contenttype", "multipart/form-data"
xmlHttp.setRequestHeader "enctype", "multipart/form-data"
xmlHttp.setRequestHeader "postmode", "multipart form"
xmlHttp.send SendString
}
end;
OBSERVACIONES :
Tengo que enviar el texto por post porque tienen el firewall configurado a tamaño máximo 2k para consultas GET y claro yo envío más de 2k.
Si alguien sabe algo se lo agradeceré mucho.
MUCHAS GRACIAS !!!