internal IFlurlRequest GetClient(Url pathSegment = null, bool anonymous = false, bool useBaseUrl = true) { var url = useBaseUrl ? BaseUrl .AppendPathSegment(API_SEGMENT) .AppendPathSegment(pathSegment.Path) .SetQueryParams(pathSegment.QueryParams) : pathSegment; IFlurlRequest client = new FlurlRequest(url); foreach (var hea in Headers) { client = client.WithHeader(hea.Key, hea.Value); } //var client = url // //.WithHeader("Content-Type", "application/json") // .WithHeader("Accept", "application/json") // //.WithHeader("User-Agent", Platform + "|" + AppName + "|" + GetType().GetTypeInfo().Assembly.GetName().Version) // .WithHeader("Accept-Language", System.Globalization.CultureInfo.CurrentCulture.ToString()); client = client.WithHeader("ClientVersion", "1.0.0"); foreach (var inter in callInterceptors) { client.ConfigureRequest(httpClient => { inter(pathSegment, anonymous, useBaseUrl, httpClient); }); } //if (!anonymous) //{ // var authHeader = GetAuthorizationHeader(); // client = client.WithHeader(authHeader.Key, authHeader.Value); //} return(client); }
private async Task <string> GetToken() { try { var response = await BaseUrl .AppendPathSegment("auth") .PostJsonAsync(new { apiKey = ApiKey }) .ReceiveJson <AuthResponse>(); if (response.Auth) { _session.SetComplexData($"{SessionTokenKey}{ApiKey}", response.Token); return(response.Token); } } catch (FlurlHttpException ex) { if (ex.Call.HttpStatus == HttpStatusCode.Unauthorized) { _logger.LogError("Wasn't able to get token. The api key is wrong."); } } return(null); }
///// <summary> ///// Append to an existing file (optional operation). ///// </summary> ///// <param name="localFile"></param> ///// <param name="remotePath"></param> ///// <returns></returns> //public async Task<string> AppendFile(string localFile, string remotePath) //{ // var hc = CreateHTTPClient(false); // var resp = await hc.PostAsync(GetUriForOperation(remotePath) + "op=APPEND", null); // if (!resp.IsSuccessStatusCode) // return null; // var postLocation = resp.Headers.Location; // StreamContent sc = new StreamContent(File.OpenRead(localFile)); // var resp2 = await hc.PostAsync(postLocation, sc); // if (!resp2.IsSuccessStatusCode) // return null; // // oddly, this is returning a 403 forbidden // // due to: "IOException","javaClassName":"java.io.IOException","message":"java.io.IOException: // // Append to hdfs not supported. Please refer to dfs.support.append configuration parameter. // return resp2.Headers.Location.ToString(); //} ///// <summary> ///// Append to an existing file (optional operation). ///// </summary> ///// <param name="localFile"></param> ///// <param name="remotePath"></param> ///// <returns></returns> //public async Task<string> AppendFile(Stream content, string remotePath) //{ // var hc = CreateHTTPClient(false); // var resp = await hc.PostAsync(GetUriForOperation(remotePath) + "op=APPEND", null); // if (!resp.IsSuccessStatusCode) // return null; // var postLocation = resp.Headers.Location; // var sc = new StreamContent(content); // var resp2 = await hc.PostAsync(postLocation, sc); // if (!resp2.IsSuccessStatusCode) // return null; // return resp2.Headers.Location.ToString(); //} #endregion private string GetUriForOperation(string path) { string uri = BaseUrl.AppendPathSegment(Prefix); if (!string.IsNullOrEmpty(path)) { if (path[0] == '/') { uri += path; } else { uri.AppendPathSegment(HomeDirectory); } uri = uri.AppendPathSegment(path); } if (!string.IsNullOrEmpty(User)) { uri = uri.SetQueryParam("user.name", User); } return(uri); }
public async Task <IEnumerable <SprdPoolInfo> > GetPoolInformationsAsync() { Logging.Logger.LogInformation("GetPoolInformationsAsync"); var response = (await BaseUrl.AppendPathSegment(RelativeUrlQueryPool).SetQueryParam("code", AzureCode_QueryPools_TestEnvironment).GetJsonAsync <IEnumerable <SprdPoolInfo> >()); return(response); }
// https://spread-api.azurewebsites.net/api/del_pool_commit/{id}?code=W/D8J7d4Q1SHIVI65umLfF3xG8aVhOXOcp3OaKkiaIv9spL/kN2KFg== public async Task <IFlurlResponse> AddNewPoolInfoAsync(SprdPoolInfo sprdPoolInfo) { Logging.Logger.LogInformation("AddNewPoolInfo"); var response = (await BaseUrl.AppendPathSegment(RelativeUrlAddPoolSprd) .SetQueryParam("code", AzureCode_AddSprd_TestEnvironment).PostJsonAsync(sprdPoolInfo)); Logging.Logger.LogInformation("Response received from AddNewPoolInfo"); return(response); }
public async Task <IList <StandingResult> > Standing(int seasonId) { var url = BaseUrl .AppendPathSegment("standings") .AppendPathSegment("season") .AppendPathSegment(seasonId) .SetQueryParam("api_token", _apiToken); var response = await url.GetJsonAsync <StandingResponse>(); return(response.Data); }
public async Task <IList <LeagueResult> > AllLeagues(AllLeagueOptions allleagueOptions = null) { var url = BaseUrl .AppendPathSegment("leagues") .SetQueryParam("api_token", _apiToken); if (allleagueOptions != null) { url.SetQueryParam("include", string.Join(',', allleagueOptions.Options)); } var response = await url.GetJsonAsync <AllLeaguesResponse>(); return(response.Data); }
public async Task <BaseResponse <DevicesResult> > GetDevicesAsync(string accountId, string token) { var body = new DevicesRequest { Token = token, AccountId = accountId, }; return(await BaseUrl .AppendPathSegment("cloud/v1/deviceManaged/devices") .WithHeader("Content-Type", "application/json") .PostJsonAsync(body) .ReceiveJson <BaseResponse <DevicesResult> >() .ConfigureAwait(false)); }
protected override void ProcessRecord() { Path = GetUnresolvedProviderPathFromPSPath(Path); var builder = new StringBuilder(); var dir = new DirectoryInfo(Path); var files = dir.GetFiles(Filter, SearchOption.AllDirectories); var listMarker = ListType == "Unordered" ? "-" : "1."; foreach (var file in files.OrderBy(f => f.Name)) { var uri = BaseUrl.AppendPathSegment(System.IO.Path.GetFileNameWithoutExtension(file.FullName)); builder.Append($"{listMarker} [{System.IO.Path.GetFileNameWithoutExtension(file.FullName)}]({uri}){Environment.NewLine}"); } WriteObject(builder.ToString()); }
public async virtual Task <OkApiResult <List <WorkerTotalAvailability> > > GetTotalAvailability(TotalAvailabilityRequest request) { try { return(await BaseUrl .AppendPathSegment("availability/getoverallacrossintervals") .SetQueryParam("api-version", ApiVersion) .WithHeader(ApiKeyName, ApiKey) .PostJsonAsync(request) .ReceiveJson <OkApiResult <List <WorkerTotalAvailability> > >()); } catch (FlurlHttpException flEx) { throw flEx; throw await flEx.Handle(); } }
public async Task <BaseResponse <LoginResult> > LoginAsync() { var body = new LoginBody { Email = _config.Email, Password = HashPassword(_config.Password), Method = "login" }; var response = await BaseUrl .AppendPathSegment("/cloud/v1/user/login") .WithHeader("Content-Type", "application/json") .PostJsonAsync(body) .ReceiveString(). ConfigureAwait(false); return(JsonConvert.DeserializeObject <BaseResponse <LoginResult> >(response)); }
public async virtual Task <OkApiResult <List <WorkerAvailabilityIntervals> > > GetAvailabilityDailyAsync (DateTimeOffset start, DateTimeOffset end, int daysToRepeat, IEnumerable <string> workerIds) { try { return(await BaseUrl .AppendPathSegment("availability/getperdailyinterval") .SetQueryParam("api-version", ApiVersion) .SetQueryParam("start", start.ToUniversalTime().ToString("yyyy'-'MM'-'dd'T'HH':'mm':'ss'.'fff'Z'")) .SetQueryParam("end", end.ToUniversalTime().ToString("yyyy'-'MM'-'dd'T'HH':'mm':'ss'.'fff'Z'")) .SetQueryParam("daysToRepeat", daysToRepeat) .WithHeader(ApiKeyName, ApiKey) .PostJsonAsync(workerIds) .ReceiveJson <OkApiResult <List <WorkerAvailabilityIntervals> > >()); } catch (FlurlHttpException flEx) { throw await flEx.Handle(); } }
/// <summary> /// GET the list of all companies that you have visibility to. /// </summary> public List <Company> GetCompanies() { var token = Tokens.Get(); return(HttpHelper.Get <List <Company> >(BaseUrl.AppendPathSegment("companies").ToString(), token)); }