コード例 #1
0
        public void Exchange()
        {
            Uri        requestUri    = new Uri("http://example.com");
            HttpMethod requestMethod = HttpMethod.POST;

            Expect.Call <bool>(converter.CanRead(typeof(Version), null)).Return(true);
            MediaType         textPlain  = new MediaType("text", "plain");
            IList <MediaType> mediaTypes = new List <MediaType>(1);

            mediaTypes.Add(textPlain);
            Expect.Call <IList <MediaType> >(converter.SupportedMediaTypes).Return(mediaTypes);
            Expect.Call <IClientHttpRequest>(requestFactory.CreateRequest(requestUri, requestMethod)).Return(request);
            HttpHeaders requestHeaders = new HttpHeaders();

            Expect.Call <HttpHeaders>(request.Headers).Return(requestHeaders).Repeat.Any();
            string helloWorld = "Hello World";

            Expect.Call <bool>(converter.CanWrite(typeof(string), null)).Return(true);
            converter.Write(helloWorld, null, request);
            ExpectGetResponse();
            Expect.Call <bool>(errorHandler.HasError(requestUri, requestMethod, response)).Return(false);
            HttpHeaders responseHeaders = new HttpHeaders();

            responseHeaders.ContentType = textPlain;
            Expect.Call <HttpHeaders>(response.Headers).Return(responseHeaders).Repeat.Any();
            ExpectHasMessageBody(responseHeaders);
            Version expected = new Version(1, 0);

            Expect.Call <bool>(converter.CanRead(typeof(Version), textPlain)).Return(true);
            Expect.Call <Version>(converter.Read <Version>(response)).Return(expected);
            Expect.Call <HttpStatusCode>(response.StatusCode).Return(HttpStatusCode.OK);
            Expect.Call <string>(response.StatusDescription).Return("OK");

            mocks.ReplayAll();

            HttpHeaders requestMessageHeaders = new HttpHeaders();

            requestMessageHeaders.Add("MyHeader", "MyValue");
            HttpEntity requestEntity             = new HttpEntity(helloWorld, requestMessageHeaders);
            HttpResponseMessage <Version> result = template.Exchange <Version>("http://example.com", HttpMethod.POST, requestEntity);

            Assert.AreEqual(expected, result.Body, "Invalid POST result");
            Assert.AreEqual(textPlain, result.Headers.ContentType, "Invalid Content-Type");
            Assert.AreEqual(textPlain.ToString(), requestHeaders.GetSingleValue("Accept"), "Invalid Accept header");
            Assert.AreEqual("MyValue", requestHeaders.Get("MyHeader"), "No custom header set");
            Assert.AreEqual(HttpStatusCode.OK, result.StatusCode, "Invalid status code");
            Assert.AreEqual("OK", result.StatusDescription, "Invalid status description");
        }
コード例 #2
0
ファイル: RestClient.cs プロジェクト: PR1-2016/OTX-Client
        public void GetPulseById(string id)
        {
            parameters = new Dictionary <string, object>();
            parameters.Add("id", id);

            HttpResponseMessage <string> responsePulse = restTemplate.Exchange <string>("/api/v1/pulses/{id}", HttpMethod.GET, requestEntity, parameters);

            if (responsePulse.StatusCode == HttpStatusCode.OK)
            {
                Pulse pulse = JsonSerializer.Deserialize <Pulse>(responsePulse.Body);
                database.AddPulse(pulse);
                File.WriteAllText(string.Format("./pulse-{0}.json", pulse.Id), JsonSerializer.Serialize(pulse, serializerOptions));
                Console.WriteLine(pulse);
                return;
            }

            Console.WriteLine("Response status: {0}", responsePulse.StatusCode.ToString());
        }