/// <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); }
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); }