Exemple #1
0
        public RestTarget WithParam(string param, string value)
        {
            var uriBuilder = new UriBuilder(_serviceUri);

            uriBuilder.Query += "&" + string.Join("&", string.Format("{0}={1}", Uri.EscapeDataString(param), Uri.EscapeDataString(value)));
            var serviceUri = uriBuilder.Uri;

            UriHacks.LeaveDotsAndSlashesEscaped(serviceUri);
            if (!_serviceUri.IsBaseOf(serviceUri))
            {
                throw new ArgumentException("Failed to resolve uri sensibly", "param");
            }

            return(new RestTarget(_fudgeContext, serviceUri));
        }
Exemple #2
0
        public RestTarget Resolve(string method, params Tuple <string, string>[] queryParams)
        {
            var safeMethod = Uri.EscapeDataString(method);
            var uriBuilder = new UriBuilder(_serviceUri);

            uriBuilder.Path  = Path.Combine(uriBuilder.Path, safeMethod);
            uriBuilder.Query = string.Join("&",
                                           queryParams.Select(p => string.Format("{0}={1}", Uri.EscapeDataString(p.Item1), Uri.EscapeDataString(p.Item2))));
            var serviceUri = uriBuilder.Uri;

            UriHacks.LeaveDotsAndSlashesEscaped(serviceUri);
            if (!_serviceUri.IsBaseOf(serviceUri))
            {
                throw new ArgumentException("Failed to resolve uri sensibly", "method");
            }
            var segments = serviceUri.Segments;

            if (segments[segments.Length - 1] != safeMethod && safeMethod != ".")
            {
                throw new ArgumentException("Failed to resolve uri sensibly", "method");
            }

            return(new RestTarget(_fudgeContext, serviceUri));
        }