Getting Started with Windows Azure Mobile Services: Listing 1
The Insert method.
- By Nick Randolph
- 09/24/2012
private const string ApplicationUrl = "https://mobilecorner.azure-mobile.net/";
private const string ApplicationKey = "QEoycHPhsULrrqnrHBVKydvlPugspY77";
private const string TableName = "article";
public async Task<Article> Insert(Article article)
{
try
{
var insertUrl = ApplicationUrl + "tables/" + TableName;
var insertRequest = WebRequest.Create(insertUrl);
insertRequest.Method = "POST";
PrepareMobileServicesHttpRequest(insertRequest);
var serializer =
JsonSerializer.Create(new JsonSerializerSettings {
NullValueHandling = NullValueHandling.Ignore});
var reqtask = Task.Factory.FromAsync<Stream>(
insertRequest.BeginGetRequestStream,
insertRequest.EndGetRequestStream, null);
using (var req = await reqtask)
using (var twriter = new StreamWriter(req))
using (var writer = new JsonTextWriter(twriter))
{
serializer.Serialize(writer,article);
}
var task = Task.Factory.FromAsync<WebResponse>(
insertRequest.BeginGetResponse,
insertRequest.EndGetResponse, null);
using (var resp = await task)
using (var stream = resp.GetResponseStream())
using(var treader = new StreamReader(stream))
using(var reader = new JsonTextReader(treader))
{
return serializer.Deserialize<Article>(reader);
}
}
catch (Exception ex)
{
Debug.WriteLine(ex.Message);
return null;
}
}
private void PrepareMobileServicesHttpRequest(WebRequest request)
{
request.Headers["X-ZUMO-INSTALLATION-ID"] = Guid.NewGuid().ToString();
request.Headers["X-ZUMO-APPLICATION"] = ApplicationKey;
if (request.Method != "GET")
{
request.ContentType = "application/json";
}
}
About the Author
Nick Randolph runs Built to Roam, a consulting company that specializes in training, mentoring and assisting other companies build mobile applications. With a heritage in rich client applications for both the desktop and a variety of mobile platforms, Nick currently presents, writes and educates on the Windows Phone platform.