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 dell'esempio

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

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

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

Il file App.config configura il servizio WCF con un endpoint WebHttpEndpoint predefinito in cui 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 come utilizzare la risposta HTTP del servizio.

Program.cs illustra come usare una factory canale WCF per effettuare chiamate al servizio ed elaborare le risposte. È importante sottolineare che quella descritta è solo una delle modalità per accedere a un servizio WCF. È inoltre possibile accedere al servizio utilizzando altre classi .NET Framework come HttpWebRequest e WebClient.

L'esempio è costituito da un servizio indipendente e da un client, entrambi in esecuzione in un'applicazione console. Quando l'applicazione console è in esecuzione, il client invia richieste al servizio e scrive nella finestra della console le informazioni pertinenti incluse nelle risposte.

Per usare questo esempio

  1. Aprire la soluzione per l'esempio relativo al servizio Http di base. Quando si avvia Visual Studio 2012, è necessario operare come amministratore per eseguire correttamente l'esempio. A tal fine fare clic con il pulsante destro del mouse sull'icona di Visual Studio e selezionare Esegui come amministratore nel menu di scelta rapida.

  2. Premere CTRL+MAIUSC+B per compilare la soluzione, quindi premere CTRL+F5 per eseguire il progetto dell'applicazione console senza eseguirne il debug. Verrà visualizzata la finestra della console in cui saranno disponibili gli URI del servizio in esecuzione e della pagina della Guida HTML per il servizio in esecuzione. 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.