コード例 #1
0
        public HttpRequestMessage Build(IMessageBuilder messageBuilder)
        {
            var message = messageBuilder.Build();
            var request = new HttpRequestMessage(message.Method, message.RequestUri);
            var body    = string.Empty;

            if ((message.Method == HttpMethod.Post || message.Method == HttpMethod.Post) &&
                !string.IsNullOrEmpty(message.Content))
            {
                body            = message.Content;
                request.Content = new StringContent(body);
            }

            var timestamp = Timestamp;
            var nonce     = Nonce;

            var url       = new Uri(Configuration.ApiUrl, request.RequestUri);
            var signature = _signer.Sign(_secret, request.Method.Method, url.ToString(), body, nonce, timestamp);

            request.Headers.TryAddWithoutValidation("Authorization", _clientKey + ':' + signature);
            request.Headers.Add("X-Auth-Timestamp", timestamp);
            request.Headers.Add("X-Auth-Nonce", nonce);
            request.Headers.TryAddWithoutValidation("Content-Type", "application/json");
            return(request);
        }
コード例 #2
0
		public async void CanSignRequest()
		{
			var signer = new HttpRequestMessageSigner();

			var signature = signer.Sign(_secretKey, "GET", "https://api.itbit.com/v1", "", "123", "1234567890");

			Assert.AreEqual("IbGoBftlsOV3oAzG1wkn5WHcBdS7cRzezJwm9CrwUetWp4ZheefJdI7mINW8bDgy38nI/w0TdmQqPfqjlK1Fqg==", signature);
		}