235 messaggi dal 27 aprile 2009
Ciao a tutti, mi sto inoltrando in questo nuova avventura :).
Volevo inviare un file in stream al mio wsRest.

Mettendo un break si ferma qui:

[WebInvoke(UriTemplate = "", Method = "POST")]
public void convertDoc(Stream fileContents)
{
}

Però non riesco a recuperare il filestream :( come posso fare? qualcuno mi può aiutare thk :)


Ciao a tutti
2.190 messaggi dal 04 marzo 2004
Contributi | Blog
Stefano_VR ha scritto:
Ciao a tutti, mi sto inoltrando in questo nuova avventura :).
Volevo inviare un file in stream al mio wsRest.

Mettendo un break si ferma qui:

[WebInvoke(UriTemplate = "", Method = "POST")]
public void convertDoc(Stream fileContents)
{
}

Però non riesco a recuperare il filestream :( come posso fare? qualcuno mi può aiutare thk :)


Ciao a tutti

Ciao,
vuoi recuperare il filestream di chi? :D
Scherzo, passa un array di byte al 'servizio', apri un FileStream sul server e riversaci i byte[].
No? :)

Alessio Leoncini (WinRTItalia.com)
.NET Developer, Interactive Designer, UX Specialist, Trainer
235 messaggi dal 27 aprile 2009
passo 2:
Ho creato un console application che chiama in post il mio web service Rest il codice è il seguente
try
            {
                HttpWebRequest httpRequest = null;
                HttpWebResponse httpResponse = null;

                ASCIIEncoding encoding = new ASCIIEncoding();
                string postData = "instance=pippo";
                byte[] data = encoding.GetBytes(postData);


                httpRequest = (HttpWebRequest)WebRequest.Create("http://localhost:8080/TeamTask/");
                httpRequest.Method = "POST";
                httpRequest.ContentType = "application/x-www-form-urlencoded";
                httpRequest.ContentLength = data.Length;

                Stream newStream = httpRequest.GetRequestStream();
                newStream.Write(data, 0, data.Length);
                newStream.Close();

                Console.WriteLine(httpRequest.Address);
                httpResponse = (HttpWebResponse)httpRequest.GetResponse();

                if (httpResponse != null)
                    httpResponse.Close();

                StreamReader sr = new StreamReader(newStream);
                Console.WriteLine(sr.ReadToEnd());

                sr.Close();
                newStream.Close();

            }
            catch (System.Net.WebException ex)
            {
                Console.WriteLine(ex.Message);
            }


nella parte wsRest c'è il seguente codice:
        [WebInvoke(UriTemplate = "", Method = "POST", RequestFormat = WebMessageFormat.Xml, ResponseFormat = WebMessageFormat.Xml)]
        public Task post()
        {
            
            // TODO: Update the given instance of SampleItem in the collection
           // throw new NotImplementedException();

            return "";
        }


Se eseguo la console vedo che si ferma sulla funzione public Task post(), per cui tutto bene.

poi ho aggiunto un parametro al webservice
 
  [WebInvoke(UriTemplate = "", Method = "POST", RequestFormat = WebMessageFormat.Xml, ResponseFormat = WebMessageFormat.Xml)]
        public void post(string value)
        {
            
            // TODO: Update the given instance of SampleItem in the collection
           // throw new NotImplementedException();

          
        }



cosi per recuperare i dati inviati dal Post, ma se faccio cosi mi viene generato un errore in console "Errore server remoto:<400> Richiesta non valida.

Qualcosa non mi torna..
Come recupero i valori del post?

Grazie a tutti per l'aiuto

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.