コード例 #1
0
        private static UriBuilder GetBuilder(string url)
        {
            var builder = new UriBuilder(BaseUrlV3 + url);

            builder.AddParameter(APIKeyParam, MDBSDK.ApiKey);
            builder.AddParameter(LanguageParam, MDBSDK.Language);
            return(builder);
        }
コード例 #2
0
        internal Uri ToAbsoluteURI(string relativePath, IEnumerable <RequestParam> requestParameters)
        {
            if (ApiEndpoint.HasPath())
            {
                throw new InvalidOperationException("apiEndpoint should not contain a path");
            }
            if (ApiEndpoint.HasUserInfoOrQueryOrFragment())
            {
                throw new InvalidOperationException("apiEndpoint should not contain user info, query or fragment");
            }

            string absolutePath = relativePath.StartsWith("/", StringComparison.Ordinal)
                ? relativePath
                : "/" + relativePath;

            UriBuilder uriBuilder = new UriBuilder
            {
                Scheme = ApiEndpoint.Scheme,
                Host   = ApiEndpoint.Host,
                Port   = ApiEndpoint.Port,
                Path   = absolutePath,
            };

            if (requestParameters != null)
            {
                foreach (RequestParam nvp in requestParameters)
                {
                    uriBuilder.AddParameter(nvp.Name, nvp.Value);
                }
            }

            return(uriBuilder.Uri);
        }
コード例 #3
0
        public void Given_UriBuilderAndParam_When_AddParameterInvoked_Then_UriBuilderCreatedWithNewParam()
        {
            var uriBuilder = new UriBuilder("http://www.testapi.com/api");
            var testParam  = "TestParam";
            var testData   = "TestData";

            var generatedUri = uriBuilder.AddParameter(testParam, testData).Uri;

            Assert.IsTrue(generatedUri.ToString().Contains(testParam));
            Assert.IsTrue(generatedUri.ToString().Contains(testData));
        }
コード例 #4
0
        internal Uri ToAbsoluteURI(string relativePath, IEnumerable <RequestParam> requestParameters)
        {
            Uri apiEndpoint = _session.ApiEndpoint;

            if (apiEndpoint.LocalPath != null && !apiEndpoint.LocalPath.Equals("/"))
            {
                throw new InvalidOperationException("apiEndpoint should not contain a path");
            }
            if (apiEndpoint.UserInfo != "" || apiEndpoint.Query != "" || apiEndpoint.Fragment != "")
            {
                throw new InvalidOperationException("apiEndpoint should not contain user info, query or fragment");
            }

            string absolutePath;

            if (relativePath.StartsWith("/", StringComparison.Ordinal))
            {
                absolutePath = relativePath;
            }
            else
            {
                absolutePath = "/" + relativePath;
            }

            UriBuilder uriBuilder = new UriBuilder();

            uriBuilder.Scheme = apiEndpoint.Scheme;
            uriBuilder.Host   = apiEndpoint.Host;
            uriBuilder.Port   = apiEndpoint.Port;
            uriBuilder.Path   = absolutePath;

            if (requestParameters != null)
            {
                foreach (RequestParam nvp in requestParameters)
                {
                    uriBuilder.AddParameter(nvp.Name, nvp.Value);
                }
            }

            return(uriBuilder.Uri);
        }