// 2 ways to check an object. One from json printed, the other an object from the api // the first way is more modular and works for any json, the second more adjusted for SWAPI public static async Task <IEnumerable <Starships> > GetStarShipItemsAsync(bool forceRefresh = false) { IWebApiClient <IStarwarsApi> _webApiClient = WebApiClientFactory.Get <IStarwarsApi>("https://swapi.co/api", true); var jsonresult = await _webApiClient.Call( (service) => service.GetTask(), Priority.UserInitiated, 2, (ex) => true, 60); var result = await _webApiClient.Call( (service) => service.GetStarships(), Priority.UserInitiated, 2, (ex) => true, 60); // checking the get call with a quick timeout try { var timeoutresult = await _webApiClient.Call( (service) => service.GetTask(), Priority.UserInitiated, 2, (ex) => true, 3); } catch (Exception e) { Console.WriteLine("This call is longer then 3 seconds, but will display anyway of working correctly"); } ConvertJson(jsonresult); return(result.Results); }
// test post call public static async Task <string> PostRawPostmanEcho(bool forceRefresh = false) { IWebApiClient <IPostmanEcho> webApiClient = WebApiClientFactory.Get <IPostmanEcho>("https://postman-echo.com/", false); PostObject postObject = new PostObject(); postObject.testName = "hello world"; postObject.testDate = DateTime.Now.ToString(); var postObjectResult = await webApiClient.Call( (service) => service.PostObject(postObject), Priority.UserInitiated, 2, (ex) => true, 60); var postResult = await webApiClient.Call( (service) => service.Post("test"), Priority.UserInitiated, 2, (ex) => true, 60); Console.WriteLine("\t Post string: "); ConvertJson(postResult); Console.WriteLine("\t Post object: "); ConvertJson(postObjectResult); return(postResult); }
public async Task <IEnumerable <Starships> > GetItemsAsync(bool forceRefresh = false) { await _webApiClient.Call( (service) => service.GetTask()); await _webApiClient.Call( (service) => service.GetTask(), Xablu.WebApiClient.Enums.Priority.UserInitiated, 2, (ex) => true, 60); var result = await _webApiClient.Call <ApiResponse <List <Starships> > >( (service) => service.GetStarships(), Xablu.WebApiClient.Enums.Priority.UserInitiated, 2, (ex) => true, 60); //var clientResult = refitClient.RefitService.UserInitiated.GetTask("/starships"); //give either result back with own refit interface and endpoints or either give endpoint and let our package handle it for you return(items); }
// test login and authorization methods public static async Task <string> AuthenticatePostmanEcho(bool forceRefresh = false) { // this is how you do a basic auth, todo: how to convert to dictionary headers, i would use value? //var authData = string.Format("{0}:{1}", "postman", "password"); //var authHeaderValue = Convert.ToBase64String(Encoding.UTF8.GetBytes(authData)); //AuthenticationHeaderValue value = new AuthenticationHeaderValue(authHeaderValue, authData); // this basic auth way is working now but less clear imo IDictionary <string, string> authValues = new Dictionary <string, string> { { "postman", "password" } }; // OAuth isn't working, how do you add the headers for these //IDictionary<string, string> oAuthValues = new Dictionary<string, string> //{ // {"oauth_consumer_key", "D+EdQ-RKCGzna7bv9YD57c-%@2Nu7" }, // {"oauth_signature_method", "HMAC-SHA1" }, // {"oauth_timestamp", "1472121261"}, // {"oauth_nonce", "oauth_nonce" }, // {"oauth_version", "1.0" }, // {"oauth_signature", "s0rK92Myxx7ceUBVzlMaxiiXU00"} //}; IWebApiClient <IPostmanEcho> basicAuthWebApiClient = WebApiClientFactory.Get <IPostmanEcho>("https://postman-echo.com/", false, defaultHeaders: authValues); //IWebApiClient<IPostmanEcho> oAuthWebApiClient = WebApiClientFactory.Get<IPostmanEcho>("https://postman-echo.com/", false, () => new SampleHttpClientHandler(), oAuthValues); var basicAuthResult = await basicAuthWebApiClient.Call( (service) => service.BasicAuth(), Xablu.WebApiClient.Enums.Priority.UserInitiated, 2, (ex) => true, 60); //var oAuthResult = await oAuthWebApiClient.Call( // (service) => service.OAuth(), // Xablu.WebApiClient.Enums.Priority.UserInitiated, // 2, // (ex) => true, // 60); Console.WriteLine("\t basic auth: "); ConvertJson(basicAuthResult); //Console.WriteLine("\t oauth: "); //ConvertJson(oAuthResult); return(basicAuthResult); }