Condividi tramite


Servizio HTTP di base

L'esempio BasicHttpService illustra come implementare un servizio basato su HTTP basato su RPC, noto in genere come servizio "POX" (Plain Old XML), usando il modello di programmazione REST di Windows Communication Foundation (WCF). Questo esempio è costituito da due componenti: un servizio HTTP WCF self-hosted (Service.cs) e un'applicazione console (Program.cs) che crea il servizio e ne effettua chiamate.

Dettagli di esempio

Il servizio WCF espone 2 operazioni EchoWithGet e EchoWithPost, che restituisce la stringa passata come input.

L'operazione EchoWithGet viene annotata con WebGetAttribute, che indica che l'operazione elabora le richieste HTTP GET . Poiché WebGetAttribute non specifica esplicitamente un UriTemplate, l'operazione prevede che la stringa di input venga passata utilizzando un parametro della stringa di query con nome s. Si noti che il formato dell'URI previsto dal servizio può essere personalizzato tramite la UriTemplate proprietà .

L'operazione EchoWithPost viene annotata con WebInvokeAttribute, che indica che non è un'operazione GET (presenta effetti collaterali). Poiché il WebInvokeAttribute non specifica esplicitamente un Method, l'operazione elabora le richieste HTTP POST che contengono la stringa nel corpo della richiesta (nel formato XML, ad esempio). Si noti che il metodo HTTP e il formato dell'URI per la richiesta possono essere personalizzati rispettivamente usando le Method proprietà e UriTemplate .

Il file App.config configura il servizio WCF con un WebHttpEndpoint predefinito che ha la proprietà HelpEnabled impostata su true. Di conseguenza, l'infrastruttura WCF crea una pagina della Guida basata su HTML automatica in http://localhost:8000/Customers/help che fornisce informazioni su come costruire richieste HTTP al servizio e su come utilizzare la risposta HTTP del servizio.

Program.cs illustra come usare una channel factory WCF per effettuare chiamate al servizio ed elaborare le risposte. Si noti che questo è solo un modo per accedere a un servizio WCF. È anche possibile accedere al servizio usando altre classi .NET Framework come HttpWebRequest e WebClient.

L'esempio è costituito da un servizio self-hosted e da un client che entrambi vengono eseguiti all'interno di un'applicazione console. Durante l'esecuzione dell'applicazione console, il client invia richieste al servizio e scrive le informazioni pertinenti dalle risposte nella finestra della console.

Per usare questo esempio

  1. Aprire la soluzione per l'esempio di servizio HTTP di base. Quando si avvia Visual Studio 2012, è necessario eseguire come amministratore per eseguire correttamente l'esempio. A tale scopo, fare clic con il pulsante destro del mouse sull'icona di Visual Studio e scegliere Esegui come amministratore dal menu di scelta rapida.

  2. Premere CTRL+MAIUSC+B per compilare la soluzione e quindi premere CTRL+F5 per eseguire l'applicazione console senza eseguire il debug. Viene visualizzata la finestra della console che fornisce l'URI del servizio in esecuzione e l'URI della pagina HTML d'aiuto relativa. In qualsiasi momento è possibile visualizzare la pagina della Guida HTML digitando l'URI della pagina della Guida in un browser. Durante l'esecuzione dell'esempio, il client scrive lo stato dell'attività corrente.

  3. Premere un tasto qualsiasi per terminare l'esempio.