public MakeGetRequestAsync ( String method ) : Task |
||
method | String | The method to call i.e. devices |
return | Task |
public virtual async Task<RequestResponse> MakeGetRequestAsync(String method)
{
if (String.IsNullOrWhiteSpace(method))
{
throw new ArgumentNullException(nameof(method));
}
if (authResults == null)
{
throw new ParticleAuthenticationExeption(String.Format(RH.C.GetString("YouMusthAuthenticateBeforeCalling"), method));
}
client.DefaultRequestHeaders.Clear();
client.DefaultRequestHeaders.Authorization = new System.Net.Http.Headers.AuthenticationHeaderValue("Bearer", authResults.AccessToken);
client.DefaultRequestHeaders.CacheControl = new System.Net.Http.Headers.CacheControlHeaderValue()
{
NoCache = true
};
HttpResponseMessage response = await client.GetAsync(method);
var str = await response.Content.ReadAsStringAsync();
RequestResponse rr = new RequestResponse();
rr.StatusCode = response.StatusCode;
rr.Response = await Task.Run(() => JToken.Parse(str));
return rr;
}
public async Task MakeGetRequestAsyncTest() { using (var cloud = new ParticleCloud()) { var exc = Assert.Throws<ArgumentNullException>(() => { cloud.MakeGetRequestAsync(null).GetAwaiter().GetResult(); }); Assert.AreEqual("method", exc.ParamName); Assert.Throws<ParticleAuthenticationExeption>(() => { cloud.MakeGetRequestAsync("devices").GetAwaiter().GetResult(); }); var stats = await cloud.LoginWithUserAsync(ConfigurationManager.AppSettings["Username"], ConfigurationManager.AppSettings["Password"]); Assert.IsTrue(stats.Success, "User did not authenticate"); var results = await cloud.MakeGetRequestAsync("devices"); Assert.AreEqual(HttpStatusCode.OK, results.StatusCode); var jrep = results.Response; Assert.AreEqual(JTokenType.Array, jrep.Type); JArray arr = (JArray)jrep; foreach (var obj in arr) { Assert.AreEqual(JTokenType.Object, obj.Type); } } }