Nessun risultato. Prova con un altro termine.
Guide
Notizie
Software
Tutorial

Creare, modificare e cancellare una risorsa

Manipolare le informazioni esposte dal Web Service con le richieste HTTP
Manipolare le informazioni esposte dal Web Service con le richieste HTTP
Link copiato negli appunti

In questa lezione vediamo come utilizzare i metodi POST e PUT e DELETE di HTTP, rispettivamente per creare una risorsa, per modificarne una già esistente e per effettuarne l'eliminazione.

Creare una nuova risorsa

Per la creazione di una nuova risorsa utilizziamo il metodo POST inviando al server la relativa rappresentazione in Atom, come quello mostrato nell'esempio:

<entry xmlns='http://www.w3.org/2005/Atom'>
 <title type='text'>Secondo post</title>
 <content type='xhtml'>
   <div xmlns="http://www.w3.org/1999/xhtml">
   <p>Questo è il mio secondo post!</p>
   </div>
 </content>
 <category scheme="http://www.blogger.com/atom/ns#" term="post" />
 <category scheme="http://www.blogger.com/atom/ns#" term="articoli" />
</entry>

Per inviare la richiesta di creazione di un nuovo post al server utilizziamo le seguenti istruzioni:

HttpWebRequest request = (HttpWebRequest)WebRequest.Create ("http://www.blogger.com/feeds/12345/posts/default");
request.Method = "POST";
request.ContentType = "application/atom+xml";
Stream requestStream = myHttpWebRequest.GetRequestStream ();
requestStream.Write(newPost, 0, newPost.Length);
requestStream.Close();
HttpWebResponse response = (HttpWebResponse)request.GetResponse();
if (response.StatusCode != HttpStatusCode.Created) {
  //Gestione dell'errore di creazione
}

In pratica abbiamo creato una richiesta di tipo POST verso l'URI relativa all'elenco dei post del nostro blog, abbiamo specificato il tipo di rappresentazione della risorsa tramite il ContentType della richiesta, abbiamo associato allo stream delle richiesta il contenuto del nuovo post (variabile newPost) ed infine abbiamo inviato la richiesta al server.

Se il codice di stato restituito dal server non corrisponde a Created (codice di stato HTTP 201), allora occorre gestire l'errore, altrimenti la creazione della risorsa ha avuto esito positivo.

Nel caso specifico delle Blogger API, il server restituisce come contenuto la risorsa appena creata. Essa è sostanzialmente identica a quella che abbiamo inviato, anche se presenta qualche informazione in più, come ad esempio un elemento <id> che indica l'identificatore assegnato al post appena creato.

Modifica di una risorsa

La modifica di una risorsa implica l'utilizzo del metodo PUT. Quindi, supponendo di voler modificare un post del nostro blog potremmo farlo con il seguente codice:

HttpWebRequest request = (HttpWebRequest)WebRequest.Create ("http://www.blogger.com/feeds/12345/posts/default/67890");
request.Method = "PUT";
request.ContentType = "application/atom+xml";
Stream requestStream = myHttpWebRequest.GetRequestStream ();
requestStream.Write(modifiedPost, 0, modifiedPost.Length);
requestStream.Close();
HttpWebResponse response = (HttpWebResponse)request.GetResponse();
if (response.StatusCode != HttpStatusCode.Ok) {
  //Gestione dell'errore di creazione
}

Le istruzioni sono del tutto analoghe a quelle viste per la creazione di un nuovo POST. Le uniche differenze riguardano l'URI della specifica risorsa che vogliamo modificare, che contiene anche l'id della risorsa e l'utilizzo del metodo PUT.

Eliminazione di una risorsa

Concludiamo con l'eliminazione di un post dal blog tramite il metodo DELETE:

HttpWebRequest request = (HttpWebRequest)WebRequest.Create ("http://www.blogger.com/feeds/12345/posts/default/67890");
request.Method = "DELETE";
HttpWebResponse response = (HttpWebResponse)request.GetResponse();
if (response.StatusCode != HttpStatusCode.Ok) {
  //Gestione dell'errore di creazione
}

Come per la richiesta di una risorsa, ci limitiamo ad indicare l'URI del post da eliminare ed il metodo DELETE.

Ti consigliamo anche