/// <summary> /// Used to obtain access tokens for the EPiServer ServiceAPI. request an access token for a username, password couplet - Authorize /// </summary> /// <param name="request">Models.TokenPostRequest</param> /// <param name="responseFormatters">response formmaters</param> public virtual async Task<Models.TokenPostResponse> Post(Models.TokenPostRequest request, IEnumerable<MediaTypeFormatter> responseFormatters = null) { var url = "token"; var req = new HttpRequestMessage(HttpMethod.Post, url); if (request.RawHeaders != null) { foreach (var header in request.RawHeaders) { req.Headers.TryAddWithoutValidation(header.Key, string.Join(",", header.Value)); } } req.Content = request.Content; var response = await proxy.Client.SendAsync(req); if (proxy.SchemaValidation.Enabled && proxy.SchemaValidation.RaiseExceptions) { if (proxy.SchemaValidation.RaiseExceptions) { await SchemaValidator.ValidateWithExceptionAsync(Models.TokenPostResponse.GetSchema(ApiMultipleResponse.GetValueAsString(response.StatusCode)), response.Content); } } return new Models.TokenPostResponse { RawContent = response.Content, RawHeaders = response.Headers, Formatters = responseFormatters, StatusCode = response.StatusCode, ReasonPhrase = response.ReasonPhrase, SchemaValidation = new Lazy<SchemaValidationResults>(() => SchemaValidator.IsValid(Models.TokenPostResponse.GetSchema(ApiMultipleResponse.GetValueAsString(response.StatusCode)), response.Content), true) }; }
/// <summary> /// Used to obtain access tokens for the EPiServer ServiceAPI. request an access token for a username, password couplet - Authorize /// </summary> /// <param name="json"></param> public virtual async Task<Models.TokenPostResponse> Post(string json) { var url = "token"; var req = new HttpRequestMessage(HttpMethod.Post, url); req.Content = new StringContent(json); var response = await proxy.Client.SendAsync(req); if (proxy.SchemaValidation.Enabled) { if (proxy.SchemaValidation.RaiseExceptions) { await SchemaValidator.ValidateWithExceptionAsync(Models.TokenPostResponse.GetSchema(ApiMultipleResponse.GetValueAsString(response.StatusCode)), response.Content); } } return new Models.TokenPostResponse { RawContent = response.Content, RawHeaders = response.Headers, StatusCode = response.StatusCode, ReasonPhrase = response.ReasonPhrase, SchemaValidation = new Lazy<SchemaValidationResults>(() => SchemaValidator.IsValid(Models.TokenPostResponse.GetSchema(ApiMultipleResponse.GetValueAsString(response.StatusCode)), response.Content), true) }; }