1 messaggio dal 25 maggio 2017
Ciao a tutti,
premetto che prima di postare ho cercato in questo forum (mio punto di riferimento da anni) ma anche nei post di tutte le lingue del mondo.
In passato ho partecipato più attivamente al forum ma poi abbandonato un po il linguaggio ho solo reperito sempre informazioni utili :D

Vado al dunque e ovviamente ho un problema.

Utilizzando ASP Classic ho la necessità di creare una routine che, composto un XML, lo invii tramite POST ad un WebServer che rispondererà anch'esso in XML.

Ho già fatto questa operazione diverse volte ma stavolta a complicare il tutto c'è il protocollo SOAP, il WebServer in HTTPS e un certificato (file .crt) da inserire.

Ho provato e riprovato parecchie volte e aggiungo che parto anche da un codice PHP perfettamente funzionante e che fa la stessa operazione e che io dovrei solo riconvertire in ASP VbScript.

Aggiungo che il server in questione (dove gira il sito che deve chiamare il WebServer) è Windows Server 2012 con IIS 8.5 al quale ho pieno accesso.

Vi posto il codice PHP da cui parto

$xml_data =
"<?xml version=\"1.0\" encoding=\"utf-8\"?" . ">" .
"<soap:Envelope xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" xmlns:xsd=\"http://www.w3.org/2001/XMLSchema\" xmlns:soap=\"http://schemas.xmlsoap.org/soap/envelope/\">
  <soap:Body>
    <GetTEST xmlns=\"http://XXXX.it">
      <xmlTEST>YYYYYYYY</xmlTEST>
    </GetTEST>
  </soap:Body>
</soap:Envelope>";



$URL = "https://XXXXXXXXX/WebServer.asmx";


$len = strlen($xml_data);



$ch = curl_init($URL);
curl_setopt($ch, CURLOPT_HTTPHEADER, array("Content-Type: text/xml; charset=utf-8","Content-length: " . $len , "SOAPAction: http://XXXX.it"));
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, "$xml_data");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_SSLVERSION, 4);

curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0);

$path_www = realpath(".") . "/" . $path_script;

curl_setopt($ch, CURLOPT_CAINFO, $path_www . 'cert/Certificato.crt');

$output = curl_exec($ch);

if($output === false)
{
    echo 'Curl error: ' . curl_error($ch) . ' number: ' . curl_errno($ch);
}


$header  = curl_getinfo( $ch );
$as1 = curl_getinfo($ch, CURLINFO_NAMELOOKUP_TIME);
$as2 = curl_getinfo($ch, CURLINFO_CONNECT_TIME);
$as3 = curl_getinfo($ch, CURLINFO_PRETRANSFER_TIME);
$as4 = curl_getinfo($ch, CURLINFO_STARTTRANSFER_TIME);
$as5 = curl_getinfo($ch, CURLINFO_TOTAL_TIME);



Io posso anche postarvi il codice ASP che sto utilizzando ma ne ho provati davvero tanti e non so più nemmeno quale è più vicino alla risoluzione rispetto agli altri.
Vi posto l'ultimo in ordine cronologico, sperando che davvero possiate darmi una mano.

strURL = "https://XXXXXXXXX/WebServer.asmx"

strRequest   ="<?xml version=""1.0"" encoding=""utf-8"" ?>" _
        & "<soap:Envelope " _
        & "xmlns:xsi=""http://www.w3.org/2001/XMLSchema-instance"" " _
        & "xmlns:xsd=""http://www.w3.org/2001/XMLSchema"" " _
        & "xmlns:soap=""http://schemas.xmlsoap.org/soap/envelope/""> " _
        & "  <soap:Body>" _
        & "    <GetTEST xmlns=""http://www.tbridge.it/"">" _
        & "      <xmlTEST>" _
        & "        YYYYYYYY" _
        & "      </xmlTEST>" _
        & "    </GetTEST>" _
        & "  </soap:Body>" _
        & "</soap:Envelope>"


soapServer = strURL
soapMessage = strRequest
Set xmlhttp = CreateObject("MSXML2.ServerXMLHTTP.6.0")
xmlhttp.setOption(2) = 13056
'xmlhttp.setOption(3) = Server.mappath("config/cert/")&"\Certificato.crt" 
xmlhttp.open "POST", soapServer, False
xmlhttp.setRequestHeader "Content-Type", "text/xml; charset=utf-8"
xmlhttp.setRequestHeader "Content-length", Len(strRequest)
xmlhttp.setRequestHeader "SOAPAction",   "http://XXXX.it"
xmlhttp.send(soapMessage)  
 
Response.Write "<br>Finished calling Web Service."
Response.Write "<br>Status = " & xmlhttp.statusText
Response.Write "<br>ResponseText = " &  xmlhttp.responseText

Torna al forum | Feed RSS

ASPItalia.com non è responsabile per il contenuto dei messaggi presenti su questo servizio, non avendo nessun controllo sui messaggi postati nei propri forum, che rappresentano l'espressione del pensiero degli autori.