/// <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); }
private IHttpWebRequestWrapper BuildHttpRequest(Request request) { IHttpWebRequestWrapper httpRequest = this.factory.Create(request.ConstructUrl()); httpRequest.UserAgent = "twilio-csharp/" + AssemblyInfomation.AssemblyInformationalVersion + PlatVersion; httpRequest.Method = request.Method.ToString(); httpRequest.Accept = "application/json"; httpRequest.Headers["Accept-Encoding"] = "utf-8"; var authBytes = Authentication(request.Username, request.Password); httpRequest.Headers["Authorization"] = "Basic " + authBytes; httpRequest.ContentType = "application/x-www-form-urlencoded"; return(httpRequest); }
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); }
public void Init() { this._requestUrl = null; this._requestBody = null; this._mockFactory = Substitute.For <HttpWebRequestFactory>(); this._mockRequest = Substitute.For <IHttpWebRequestWrapper>(); this._mockRequest.Headers = new NameValueCollection(); this._mockResponse = Substitute.For <IHttpWebResponseWrapper>(); this._mockResponse.GetResponseStream().Returns(new MemoryStream()); this._mockFactory.Create(Arg.Do <Uri>(arg => this._requestUrl = arg)) .Returns(this._mockRequest); this._mockRequest.GetResponse().Returns(this._mockResponse); this._mockRequest.WriteBody(Arg.Do <byte[]>(arg => this._requestBody = Encoding.UTF8.GetString(arg, 0, arg.Length) )); this.TwilioClient = new WebRequestClient(this._mockFactory); }
protected virtual void PrepareRequest(IHttpWebRequestWrapper request) { }