Visualizzazione dei risultati da 1 a 5 su 5
  1. #1

    Semplice Web Service, problema nel restituire i dati via post da chiamata sempre via post

    Ciao a tutti,
    la mia problematica è questa ovvero devo creare una semplice web service dove una pagina chiamata "prova.asp" chiama una pagina chiamata "receiver.asp" passandogli dei dati via post e vorrei che la pagina receiver gli rispondesse inviando la risposta anch'essa via post.
    L'invio dei dati non è un problema e ho verificato funzionasse, il problema è la risposta non riesco a far tornare indietro la risposta per fargliela leggere via post alla pagina "prova.asp".
    Se la risposta fosse in xml non avrei problemi (ho verificato) ma in post non so come fare.
    Il codice che uso per chiamare e per leggere la risposta è questo (pagina.asp):

    codice:
    metodo = "ctrl"
    token = "L0mYdcKwZXPeRvmo514zKeBjoDpdpP1P"
    
    Dim objHttp
    str = "method=" & metodo & "&token=" & token & "&cmd=_notify-synch"
    
    set objHttp = Server.CreateObject("Msxml2.ServerXMLHTTP")
    objHttp.open "POST", "http://www.sitodiprova.it/webservice/", false
    objHttp.setRequestHeader "Content-type", "application/x-www-form-urlencoded"
    objHttp.Send str
    
    ItemName = Request.form("item_name")
    response.Write(ItemName)
    
    set objHttp = nothing
    Mentre il codice della pagina receiver.asp semplificato dai calcoli non so come impostarlo.
    Credo il content type sia quello che ho messo ma poi non so che codice scrivere per far si che poi prova.asp possa leggere la request.form("item_name")

    codice:
    Response.ContentType = "text/html"
    .....
    .....
    Se mi bastasse una risposta in xml metterei così su receiver:
    codice:
    Response.ContentType = "text/xml"
    response.write "<ReturnValue>test ok</ReturnValue>"
    e modificherei così prova.asp al posto del request.form("item_Name")
    codice:
    Response.ContentType = "text/xml"
    Response.Write objHttp.responsexml.xml
    ma ahimè io vorrei poter leggere la risposta di receiver tramite una request.form.

    Sapete aiutarmi?
    Grazie a tutti

  2. #2
    Utente di HTML.it L'avatar di vic53
    Registrato dal
    Oct 2010
    residenza
    Fonte Nuova (Roma)
    Messaggi
    590
    penso che dovresti ricevere forse
    ...
    Response.Write objHttp.responseText

    pero' non ho ben chiaro le mosse in sequenza che vuoi fare
    Vic53

  3. #3
    Ciao forse mi sono spiegato male... in pratica io vorrei ricevere nella pagina prova.asp semplicemnte con questo codice:
    codice:
    ...
    ItemName = Request.form("item_name")
    response.Write(ItemName)
    ...
    ma non so cosa scrivere in receiver.asp per far si che poi prova.asp possa ricevere i dati in questo modo.

    Il percorso dovrebbe essere prova.asp fa la chiamata a receiver.asp, il quale elabora i dati e risponde a prova.asp.
    La risposta avrà una variabile chiamata "item_name" che prova.asp vorrei leggesse con una request.form
    Spero di essere stato più chiaro e grazie per l'aiuto

  4. #4
    Moderatore di Annunci siti web, Offro lavoro/collaborazione, Cerco lavoro L'avatar di cavicchiandrea
    Registrato dal
    Aug 2001
    Messaggi
    26,131
    Il server non invia dati in post li riceve solo, se vuoi proseguire con questo tipo d’approccio devi interrompe il flusso server inserire un forum html ed eseguire un submit automatico oppure usare le sessioni
    Cavicchi Andrea
    Problemi con javascript, jquery, ajax clicca qui

  5. #5
    Utente di HTML.it L'avatar di vic53
    Registrato dal
    Oct 2010
    residenza
    Fonte Nuova (Roma)
    Messaggi
    590
    Di solito per fare una chiamata a questo oggetto si usa il metodo POST e si riceve il risultato in

    oggetto.responseText

    e si effettua li in controllo se il receiver ha eseguito l'operazione

    per esempio

    se receiver scrive "OK;" + un eventuale messaggio di controllo, controlli i due caratteri iniziali con left(oggetto.responseText,2) e vedi se trovi "OK": se lo trovi è andato tutto bene altrimenti avrai un messaggio di errore che avrai impostato tu...

    ti posto un esempio messo su tre file per comodità...
    1 mo file prova.asp
    codice:
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <meta content="text/html; charset=utf-8" http-equiv="Content-Type" />
    <title>Prova web service</title>
    
    </head>
    
    <body>
    <form id="prova" name="prova" action="service1.asp" >
    <br>username &nbsp;<input type="text" name="username" id="item_name" value="utente" />
    <br>password &nbsp;<input type="text" name="password" id="item_name" value="pw1" />
    <input type="submit" value="send">
    </form> 
    </body>
    </html>
    2ndo file service1.asp
    codice:
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <meta content="text/html; charset=utf-8" http-equiv="Content-Type" />
    <title>Prova web service</title>
    </head>
    <body>
    <%
    my_uname = Request.Form("username")
    my_pword = Request.Form("password")
    
    
    Dim objHttp
    str = "username=" & my_uname & "&password=" & my_pword 
    set objHttp = Server.CreateObject("Msxml2.ServerXMLHTTP")
    objHttp.open "POST", "http://localhost/websvc/receiver.asp", false 
    objHttp.Send(str)
    Response.Write objHttp.responseText
    if left(objHttp.responseText,4) = "TEST" then
       Response.Write "Login Successful!"
    else
       Response.Write "Login Failed!"&objHttp.responseText
    end if
    set objHttp = nothing
    %>
    </body>
    </html>
    3zo file receiver.asp
    codice:
    <%
    ItemName1 = Request.querystring("username")
    ItemName2 = Request.querystring("password")
    response.write("TEST"& " username=" & ItemName1)
    %>
    naturalmente è un esempio base e io ho creato la directory virtuale websvc per fare una prova...

    ma se non è questo che vuoi dall'oggetto Msxml2.ServerXMLHTTP, non so altri modi al momento

    ciao

    i dati in ritorno li puoi formattare tu in XML se lo vuoi in XML...
    Vic53

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.