Iamport.RestApi.ApiPathUtility.Build C# (CSharp) Méthode

Build() public static méthode

주어진 기본 경로 혹은 URL에 추가 경로 혹은 URL을 붙이거나 덮어써서 반환합니다. 추가 경로가 scheme으로 시작할 경우 baseUrlOrPath 전체를 무시합니다. 추가 경로가 ~/로 시작할 경우 baseUrlOrPath의 path부분을 무시합니다. 추가 경로가 그 외일 경우 baseUrlOrPath에 추가합니다.
public static Build ( string baseUrlOrPath, string addedUrlOrPath ) : string
baseUrlOrPath string 기본 경로 혹은 URL
addedUrlOrPath string 추가 경로 혹은 URL
Résultat string
        public static string Build(string baseUrlOrPath, string addedUrlOrPath)
        {
            if (string.IsNullOrEmpty(baseUrlOrPath))
            {
                return addedUrlOrPath;
            }
            if (string.IsNullOrEmpty(addedUrlOrPath))
            {
                return baseUrlOrPath;
            }
            if (addedUrlOrPath.IndexOf("://") > 0)
            {
                return addedUrlOrPath;
            }
            if (addedUrlOrPath.StartsWith("~/"))
            {
                return baseUrlOrPath
                    .Split(PathSeparators, StringSplitOptions.RemoveEmptyEntries)[0]
                    + addedUrlOrPath.Substring(1);
            }
            return baseUrlOrPath.Trim('/') + "/" + addedUrlOrPath.TrimStart('/');
        }

Usage Example

        /// <summary>
        /// 현재 설정으로 유효한 토큰을 확보합니다.
        /// </summary>
        /// <returns>토큰 정보</returns>
        public async Task <IamportToken> AuthorizeAsync()
        {
            ThrowsIfDisposed();
            var input = new IamportTokenRequest
            {
                ApiKey    = options.ApiKey,
                ApiSecret = options.ApiSecret
            };

            // TODO: 인증 코드는 UsersApi와 중복된 부분임.
            // 별도로 빼는 방법이 있을지?
            var url         = ApiPathUtility.Build(options.BaseUrl, UsersGetTokenPath);
            var httpRequest = new HttpRequestMessage(HttpMethod.Post, url);

            httpRequest.Content = new JsonContent(input);
            var response = await RequestAsync <IamportToken>(httpRequest);

            if (response.Code != 0)
            {
                throw new IamportResponseException(response.Code, response.Message);
            }

            var token = response.Content;

            lock (tokenLock)
            {
                httpClient.DefaultRequestHeaders.Remove(options.AuthorizationHeaderName);
                httpClient.DefaultRequestHeaders.Add(options.AuthorizationHeaderName, token.AccessToken);
                CurrentToken = token;
            }
            return(token);
        }
All Usage Examples Of Iamport.RestApi.ApiPathUtility::Build
ApiPathUtility