Exemple #1
0
        public override void HandleBefore(Context context)
        {
            var headers = new Dictionary <string, string>();

            // Step 1, compute Content MD5
            var md5hash = MD5.Create();

            byte[] hashData   = md5hash.ComputeHash(context.HttpRequestBody);
            string contentMD5 = Convert.ToBase64String(hashData);

            headers.Add("x-ots-contentmd5", contentMD5);

            // Step 2, make date time string
            var dateString = DateTime.UtcNow.ToString("R");

            headers.Add("x-ots-date", dateString);

            // Step 3, other headers
            headers.Add("x-ots-apiversion", context.ClientConfig.APIVersion);
            headers.Add("x-ots-accesskeyid", context.ClientConfig.AccessKeyID);
            headers.Add("x-ots-instancename", context.ClientConfig.InstanceName);

            headers.Add("x-ots-user-agent", context.ClientConfig.UserAgent);

            // Step 4, compute signature
            string signature = MakeRequestSignature(context, headers);

            headers.Add("x-ots-signature", signature);

            context.HttpRequestHeaders = headers;

            InnerHandler.HandleBefore(context);
        }
        public override void HandleBefore(Context context)
        {
            var encoder = EncoderMap[context.APIName];
            var message = encoder(context.OTSRequest);

            LogEncodedMessage(context, message);
            context.HttpRequestBody = message.ToByteArray();
            InnerHandler.HandleBefore(context);
        }
 public override void HandleBefore(Context context)
 {
     InnerHandler.HandleBefore(context);
 }
Exemple #4
0
 private void ResetRetry(Context context)
 {
     InnerHandler.HandleBefore(context);
     context.HttpTask.Wait();
 }