protected async Task <string> HttpRequestWithToken(string url, Windows.Web.Http.HttpMethod method, string body = "") { var filter = new HttpBaseProtocolFilter(); filter.IgnorableServerCertificateErrors.Add(ChainValidationResult.Expired); filter.IgnorableServerCertificateErrors.Add(ChainValidationResult.Untrusted); filter.IgnorableServerCertificateErrors.Add(ChainValidationResult.InvalidName); using (var httpClient = new Windows.Web.Http.HttpClient(filter)) { Windows.Web.Http.HttpResponseMessage response; try { var request = new Windows.Web.Http.HttpRequestMessage(method, new Uri(url)); if (Token != string.Empty) { request.Headers.Authorization = new HttpCredentialsHeaderValue("Bearer", Token); } if (body != string.Empty) { request.Content = new Windows.Web.Http.HttpStringContent(body); request.Content.Headers.ContentType = new HttpMediaTypeHeaderValue("application/json"); } response = await httpClient.SendRequestAsync(request); var content = await response.Content.ReadAsStringAsync(); return(content); } catch (Exception ex) { return(ex.ToString()); } } }
public async Task <RestResponse> AuthenticationRequest(HttpMethod method) { if (method == HttpMethod.Get) { _state = RandomString.Create(16); } // First send authentication request var request = new RestRequest(method) { Resource = AuthResource }; AddParameter addParameter = request.AddParameter; if (method == HttpMethod.Get) { addParameter = request.AddQueryParameter; } addParameter("state", _state); addParameter("response_type", "token"); addParameter("scope", Scopes); addParameter("client_id", ClientId); addParameter("redirect_uri", RedirectUri); if (method == HttpMethod.Post) { addParameter("uh", _uh); addParameter("authorize", "Allow"); } var response = await Execute(request); // Follow redirect request = new RestRequest(HttpMethod.Get) { Resource = response.Headers.Location.AbsolutePath }; if (method == HttpMethod.Get) { request.QueryParameters = response.Headers.Location.Query.Substring(1).SplitToKeyValuePairs('&', '='); response = await Execute(request); } else { var token = response.Headers.Location.Fragment.Substring(1).SplitToDictionary('&', '='); ObtainedToken = new Token(token["token_type"], token["access_token"], Convert.ToUInt32(token["expires_in"])); } return(response); }
public static HttpMethod ToSystemHttp(this Windows.Web.Http.HttpMethod method) { if (method == Windows.Web.Http.HttpMethod.Post) { return(HttpMethod.Post); } else if (method == Windows.Web.Http.HttpMethod.Get) { return(HttpMethod.Get); } else { throw new NotSupportedException(); } }