Windows Azure : Verwendung der REST API von Windows Azure Teil 3: Eine Queue mit asynchronem Callback erstellen

Von Mario Meir-Huber Autor Feed 3. November 2009 15:01

Dies ist das letzte Posting zur Windows Azure Serie und REST. Im ersten Posting wurde erklärt, was REST ist und wie es funktioniert. Im zweiten Posting wurde erklärt, wie man Anfragen verschlüsselt und signiert. Was jetzt noch fehlt ist, wie man auf der REST-API arbeitet. Hierfür wird ein einfaches Beispiel erstellt, wo eine neue MessageQueue in Windows Azure erstellt wird.

Um eine Webafrage zu erstellen, ist ein HttpWebRequest notwendig. Dieser startet die Abfrage und wird mit “WebRequest.Create” erstellt. Wichtig ist hierbei auch noch der Cast. Als Adresse wird http://MEIN_ACCOUNT.queue.core.windows.net/MEINE_NEUE_MQ verwendet. Hierbei muss MEIN_ACCOUNT mit dem tatsächlichen Accountnamen ersetzt werden und MEINE_NEUE_MQ mit dem Namen unter welche diese identifiziert wird. Da es sich hierbei um die Erstellung eines neuen Elementes handelt, ist dies ein PUT.

Die MessageQueue und die HTTP Verben wie PUT wurden bereits im ersten Posting erklärt. Die Webabfrage soll asynchron laufen, damit diese den Thread nicht blockiert. Dies merkt man an der “BeginGetResponse” Methode. Dabei wird das Callback und der Request übergeben.

public static void CreateQueue(string secret, string accountName, string Queue)
{
 
    try
    {
        var request = WebRequest.Create(string.Format("http://{0}.queue.core.windows.net/{1}", accountName, Queue)) as HttpWebRequest;
        request.Method = "PUT";
        request.ContentLength = 0;
        SignRequest(ref request, secret, accountName, "PUT");
        request.BeginGetResponse(CreateQueueCallBack, request);
    }
    catch (Exception ex)
    {
        Console.WriteLine(string.Format("Error occured: {0}", ex.Message));
    }
}

Das Ergebnis der Anfrage wird nun in den Callback ausgegeben. Dieser heißt “CreateQueueCallBack” in unserem Fall. Als erstes wird die HttpWebResponse aus dem WebRequest des Callback-Results (IAsyncResult) erstellt. Da jedoch nichts zurück geliefert wird außer der Status Code, soll dieser auf der Konsole ausgegeben werden. Jede HttpWebResponse hat ein Property “StatusCode”, auf welchen gearbeitet werden kann.

private static void CreateQueueCallBack(IAsyncResult result)
{
    HttpWebResponse res = null;

    try
    {
        WebRequest req = result.AsyncState as WebRequest;
        res = req.EndGetResponse(result) as HttpWebResponse;

        Console.WriteLine(res.StatusCode);
    }
    catch (Exception ex)
    {
        Console.WriteLine(string.Format("Error occured: {0}", ex.Message));
    }
}

Schlussendlich muss auch noch die Funktion “CreateQueue” aufgerufen werden. Hierfür müssen wir den SharedKey, den Account und die Queue angeben.

static void Main(string[] args)
{
    CreateQueue("DEIN_SHARED_KEY", 
        "DEIN_ACCOUNT", "Asf");
    Console.ReadLine();
}
image

Bild 1: Queue wurde erfolgreich erstellt.

image

Bild 2: Fehler beim Erstellen; die Queue ist bereits vorhanden, man kann diese nur 1x erstellen. Um den Fehler zu entfernen muss man sich einen anderen Namen auswählen.

So, dies war es vorerst mal mit der Windows Azure Serie. Die nächsten Serien sind schon in Vorbereitung, wobei eines kann ich schon verraten: es wird sehr dynamisch mit vielen Musterbeispielen ;)

Add comment

  Country flag

biuquote
  • Comment
  • Preview
Loading

Datenschutzhinweis: Sie stimmen durch "Kommentar speichern" der Speicherung Ihrer Angaben durch Microsoft Österreich für die Beantwortung der Anfrage zu. Sie erhalten dadurch keine unerwünschten Werbezusendungen. Ihre Emailadresse wird auf Ihren Wunsch dazu verwendet Sie über neue Kommentare zu informieren.

Microsoft respektiert den Datenschutz. Datenschutz & Cookies

Entwickler Wettbewerbe:

Wettbewerbe

Entwickler Events:

Developer Events

App für Windows 8, Windows Phone oder/und Azure? Diese Events zeigen Dir, wie es geht:

Mehr Information

Aktuelle Downloads

Visual Studio Downloads
 
Windows Azure Free Trial
Instagram
CodeFest.at on Facebook

Datenschutz & Cookies · Nutzungsbedingungen · Impressum · Markenzeichen
© 2013 Microsoft. Alle Rechte vorbehalten · BlogEngine.NET 2.7.0.0 · Diese Website wird für Microsoft von atwork gehostet.
powered by atwork