示例#1
0
        public async Task CanGetAndSetMethod(HttpPipelineMethod method, string expectedMethod)
        {
            HttpMethod httpMethod  = null;
            var        mockHandler = new MockHttpClientHandler(
                httpRequestMessage => {
                httpMethod = httpRequestMessage.Method;
            });

            var transport = new HttpClientTransport(new HttpClient(mockHandler));
            var request   = transport.CreateRequest(null);

            request.SetRequestLine(method, new Uri("http://example.com:340"));

            Assert.AreEqual(method, request.Method);

            await ExecuteRequest(request, transport);

            Assert.AreEqual(expectedMethod, httpMethod.Method);
        }
示例#2
0
        private Request CreateRequest(HttpPipelineMethod method, params string[] path)
        {
            Request request = _pipeline.CreateRequest();

            request.Headers.Add(HttpHeader.Common.JsonContentType);
            request.Headers.Add(HttpHeader.Common.JsonAccept);
            request.Method         = method;
            request.UriBuilder.Uri = _vaultUri;

            foreach (var p in path)
            {
                if (!string.IsNullOrEmpty(p))
                {
                    request.UriBuilder.AppendPath(p);
                }
            }

            request.UriBuilder.AppendQuery("api-version", ApiVersion);

            return(request);
        }
        public static string ToString(HttpPipelineMethod method)
        {
            switch (method)
            {
            case HttpPipelineMethod.Get:
                return("GET");

            case HttpPipelineMethod.Post:
                return("POST");

            case HttpPipelineMethod.Put:
                return("PUT");

            case HttpPipelineMethod.Patch:
                return("PATCH");

            case HttpPipelineMethod.Delete:
                return("DELETE");

            default:
                throw new ArgumentOutOfRangeException(nameof(method), method, null);
            }
        }
示例#4
0
        private async Task <Response <TResult> > SendRequestAsync <TContent, TResult>(HttpPipelineMethod method, TContent content, Func <TResult> resultFactory, CancellationToken cancellationToken, params string[] path)
            where TContent : Model
            where TResult : Model
        {
            using (Request request = CreateRequest(method, path))
            {
                request.Content = HttpPipelineRequestContent.Create(content.Serialize());

                Response response = await SendRequestAsync(request, cancellationToken);

                return(this.CreateResponse(response, resultFactory()));
            }
        }
 public virtual void SetRequestLine(HttpPipelineMethod method, Uri uri)
 {
     Method = method;
     Uri    = uri;
 }