19 messaggi dal 17 gennaio 2011
Buongiorno, devo inviare un file xml tramite un web service,
il web service ha il seguente metodo:
int importFxml (string bkXml)

come posso fare?
E' la prima volta che faccio una cosa del genere quindi mi servirebbe un esempio di script da poter utilizzare per risolvere il mio problema.
Grazie

Cercando un pò on line ho trovato questo script.

protected void Page_Load(object sender, EventArgs e)
    {
        WebRequest req = null;
        WebResponse rsp = null;
        try
        {
            string fileName = Server.MapPath("~\\HotelValuedAvailRQ.xml");
            string uri = "http://212.170.239.71/appservices/http/FrontendService";
            req = WebRequest.Create(uri);
            //req.Proxy = WebProxy.GetDefaultProxy(); // Enable if using proxy
            req.Method = "POST";        // Post method
            req.ContentType = "text/xml";     // content type
            // Wrap the request stream with a text-based writer
            StreamWriter writer = new StreamWriter(req.GetRequestStream());
            // Write the XML text into the stream
            writer.WriteLine(this.GetTextFromXMLFile(fileName));
            writer.Close();
            // Send the data to the webserver
            rsp = req.GetResponse(); //I am getting error over here
            StreamReader sr = new StreamReader(rsp.GetResponseStream());
            string result = sr.ReadToEnd();
            sr.Close();
            Response.Write(result);
            
        }
        catch (WebException webEx)
        {
            Response.Write(webEx.Message.ToString());
            Response.Write(webEx.StackTrace.ToString());
        }
        catch (Exception ex)
        {
            Response.Write(ex.Message.ToString());
            Response.Write(ex.StackTrace.ToString());
        }
        finally
        {
            if (req != null) req.GetRequestStream().Close();
            if (rsp != null) rsp.GetResponseStream().Close();
        }
    }
        //Function to read xml data from local system
  /// <summary>
  /// Read XML data from file
  /// </summary>
  /// <param name="file"></param>
  /// <returns>returns file content in XML string format</returns>
  private string GetTextFromXMLFile(string file)
  {
   StreamReader reader = new StreamReader(file);
   string ret = reader.ReadToEnd();
   reader.Close();
   return ret;
  }


ma dove definisco il nome del servizio importFxml??
Modificato da LuigiJin46 il 29 ottobre 2013 09.46 -
11.886 messaggi dal 09 febbraio 2002
Contributi
ciao Luigi,
non è necessario usare l'oggetto WebRequest.

Consumare un webservice è molto semplice perché Visual Studio ti crea delle comode classi proxy modellate attorno alla struttura del servizio. Avrai dunque una classe che possiede il metodo importFxml, a cui dovrai passare una stringa e che ti restituirà un intero.

Per prima cosa, dal tuo progetto devi aggiungere un riferimento al servizio. Segui questa guida, si tratterà di indicare l'URL del documento WSDL esposto dal servizio e di dare un nome al riferimento.
http://msdn.microsoft.com/it-it/library/bb628649(v=vs.110).aspx

Se non conosci il percorso del documento WSDL, richiedilo allo sviluppatore del webservice.

A questo punto saranno già state create le classi che ti servono. Si chiamano classi proxy perché si offrono come intermediarie tra la tua applicazione e il webservice. Per te sono molto comode perché ti eviteranno il problema di dover comporre la richiesta web a mano.

Ecco un esempio di come creare un'istanza della classe proxy ed invocarne i metodi.
http://msdn.microsoft.com/it-it/library/6h0yh8f9%28v=vs.100%29.aspx

Il nome preciso della classe che Visual Studio ti ha creato lo determini in questo modo:
var oggetto = new NomeCheHaiSceltoPerIlRiferimento.NomeDelServizio();


ciao,
Moreno
Modificato da BrightSoul il 01 novembre 2013 22.27 -

Enjoy learning and just keep making

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.