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); }
private void ResetRetry(Context context) { InnerHandler.HandleBefore(context); context.HttpTask.Wait(); }