Ejemplo n.º 1
0
        /// <summary>
        /// Make an HTTP request
        /// </summary>
        /// <param name="request">Twilio request</param>
        /// <returns>Twilio response</returns>
        public override Response MakeRequest(Request request)
        {
            IHttpWebRequestWrapper httpRequest = BuildHttpRequest(request);

            if (!Equals(request.Method, HttpMethod.Get))
            {
                httpRequest.WriteBody(request.EncodePostParams());
            }

            this.LastRequest  = request;
            this.LastResponse = null;
            try
            {
                IHttpWebResponseWrapper response = httpRequest.GetResponse();
                string content = GetResponseContent(response);
                this.LastResponse = new Response(response.StatusCode, content, response.Headers);
            }
            catch (WebExceptionWrapper e)
            {
                if (e.Response == null)
                {
                    // Network or connection error
                    throw e.RealException;
                }
                // Non 2XX status code
                IHttpWebResponseWrapper errorResponse = e.Response;
                this.LastResponse = new Response(errorResponse.StatusCode, GetResponseContent(errorResponse), errorResponse.Headers);
            }
            return(this.LastResponse);
        }
Ejemplo n.º 2
0
        public virtual void SendMessage(Message message)
        {
            var currentTime = new TimeSpan(DateTime.Now.Hour, DateTime.Now.Minute, 0);

            if (currentTime < this.BeginSmsTranssmisionPeriod || currentTime > EndSmsTranssmisionPeriod)
            {
                message.State = MessageState.Postponed;
                return;
            }

            IHttpWebRequestWrapper req = ServiceLocator.Current.ToNinject().Kernel.Get <IHttpWebRequestWrapper>(new ConstructorArgument("url", BuildMessageUrl(message)));

            PrepareRequest(req);
            this.Log.DebugFormat("Wysy³anie requestu do providera wiadomoœci na adres: {0}", req.RequestUri.AbsoluteUri);
            IHttpWebResponseWrapper response = req.GetResponse();

            HandleResponse(response, message);
        }