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 !!!
![de acuerdo](http://static.forosdelweb.com/fdwtheme/images/smilies/dedosarriba.png)