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); }
public async Task HandleAsync(DbSms sms, CancellationToken token = default) { _logger.Debug("Try to build message. Sms {@Sms}", sms); var message = await _messageBuilder.Build(sms, _routeConfiguration.Body, token); _logger.Debug("Try to send message. Message {@Message}", message); await _messageHttpService.SendSms(_routeConfiguration, message, token); }
public JObject GetGelfJson(LogEvent logEvent) { IMessageBuilder builder = logEvent.Exception != null ? _messageBuilders[BuilderType.Exception].Value : _messageBuilders[BuilderType.Message].Value; return(builder.Build(logEvent)); }
private async Task<HttpResponseMessage> SendAsync(IMessageBuilder messageBuilder) { if (messageBuilder == null) throw new ArgumentNullException("messageBuilder"); var message = messageBuilder.Build(); var request = new HttpRequestMessage(message.Method, message.RequestUri); return await CreateClient().SendAsync(request).ConfigureAwait(false); }
public async Task SendPeriodically(TimeSpan period, CancellationToken cancelToken) { while (!cancelToken.IsCancellationRequested) { await Task.Delay(period, cancelToken); var message = _messageBuilder.Build(SenderName); await PostToReceiver(message, cancelToken); } }
private async Task <HttpResponseMessage> SendAsync(IMessageBuilder messageBuilder) { if (messageBuilder == null) { throw new ArgumentNullException("messageBuilder"); } var message = messageBuilder.Build(); var request = new HttpRequestMessage(message.Method, message.RequestUri); return(await CreateClient().SendAsync(request).ConfigureAwait(false)); }
public SendResult SendMessageSync(IMessageBuilder builder) { var message = builder.Build(); if (message.Handle == IntPtr.Zero) { throw new ArgumentException(nameof(builder)); } var result = ProducerWrap.SendMessageSync(this.Handle, message, out var sendResult); return(result == 0 ? new SendResult { SendStatus = sendResult.sendStatus, Offset = sendResult.offset, MessageId = sendResult.msgId } : null); }
public SendResult SendMessageOneway(IMessageBuilder builder) { var message = builder.Build(); if (message.Handle == IntPtr.Zero) { throw new ArgumentException(nameof(builder)); } var result = ProducerWrap.SendMessageOneway(this.Handle, message); return(result == 0 ? new SendResult { SendStatus = result, Offset = 0, MessageId = string.Empty } : null); }
public SendResult SendMessageOrderly(IMessageBuilder builder, QueueSelectorCallback callback, int autoRetryTimes = 0, string args = "") { var message = builder.Build(); if (message.Handle == IntPtr.Zero) { throw new ArgumentException(nameof(builder)); } var argsPtr = Marshal.StringToBSTR(args); var result = ProducerWrap.SendMessageOrderly(this.Handle, message, callback, argsPtr, autoRetryTimes, out var sendResult); return(result == 0 ? new SendResult { SendStatus = sendResult.sendStatus, Offset = sendResult.offset, MessageId = sendResult.msgId } : null); }
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; }
/// <summary> /// 异步发送群消息 /// </summary> /// <exception cref="BotMutedException"/> /// <param name="builder">构建完毕的 <see cref="IMessageBuilder"/></param> /// <inheritdoc cref="CommonSendMessageAsync"/> public Task <int> SendGroupMessageAsync(long groupNumber, IMessageBuilder builder, int?quoteMsgId = null) { return(CommonSendMessageAsync("sendGroupMessage", null, groupNumber, builder.Build(), quoteMsgId)); }
/// <summary> /// 异步发送好友消息 /// </summary> /// <param name="builder">构建完毕的 <see cref="IMessageBuilder"/></param> /// <inheritdoc cref="CommonSendMessageAsync"/> public Task <int> SendFriendMessageAsync(long qqNumber, IMessageBuilder builder, int?quoteMsgId = null) { return(CommonSendMessageAsync("sendFriendMessage", qqNumber, null, builder.Build(), quoteMsgId)); }