コード例 #1
0
        protected Object InvokeWebCallUriAsJson(UriParametersModel paramModel)
        {
            paramModel.AddMediaType("application/json");
            dynamic jsonString = InvokeHttpClientGet(paramModel);

            return(jsonString);
        }
コード例 #2
0
        private Object InvokeHttpClientGet(UriParametersModel paramModel)
        {
            using (HttpClient client = new HttpClient())
            {
                client.BaseAddress = new Uri(paramModel.UriString);

                foreach (String userAgent in paramModel.GetUserAgent())
                {
                    client.DefaultRequestHeaders.UserAgent.ParseAdd(userAgent);
                }

                // Add an Accept header for JSON format.
                foreach (MediaTypeWithQualityHeaderValue mediaType in paramModel.GetMediaTypeWithQualityHeaderValueList())
                {
                    client.DefaultRequestHeaders.Accept.Add(mediaType);
                }

                // List data response.
                // Blocking call! Program will wait here until a response is received or a timeout occurs.
                using (HttpResponseMessage response = client.GetAsync(paramModel.GetUriParametersString).Result)
                {
                    if (response.IsSuccessStatusCode)
                    {
                        // Parse the response body.
                        Object data = response.Content.ReadAsAsync <Object>().Result;  //Make sure to add a reference to System.Net.Http.Formatting.dll
                        return(data);
                    }
                    else
                    {
                        Console.WriteLine("{0} ({1})", (int)response.StatusCode, response.ReasonPhrase);
                    }
                }
            }
            return(null);
        }
コード例 #3
0
        public IRepositoryRelease RepositoryLatestRelease()
        {
            UriParametersModel urlParametersModel = new UriParametersModel(githubEndpoint.LatestReleaseEndpoint);

            CompleteUriParameterModel(ref urlParametersModel);
            dynamic jsonobj = InvokeWebCallUriAsJson(urlParametersModel);

            if (jsonobj == null)
            {
                throw new NullReferenceException("Repository endpoint didnt respond...");
            }

            RepositoryReleaseModel repoModel = new RepositoryReleaseModel();

            repoModel.SetReleaseNote    = jsonobj?.body;
            repoModel.SetReleaseTagName = jsonobj?.tag_name;
            repoModel.SetReleaseURL     = jsonobj?.assets?[0].browser_download_url;
            return(repoModel);
        }
コード例 #4
0
 private void CompleteUriParameterModel(ref UriParametersModel uriParametersModel)
 {
     uriParametersModel.AddUserAgent("request");
 }