public HttpResponse <TResponse> SubmitRequest <TResponse>(string serviceUri, HttpVerbEnum httpVerb, HttpContentTypeEnum contentType, NameValueCollection header) { TResponse responseObject = this.DeserializeObject <TResponse>(MockRawResponse, contentType); HttpResponse <TResponse> response = new HttpResponse <TResponse>(responseObject, MockRawResponse, MockStatusCode); return(response); }
public RestClient(string endpoint, HttpVerbEnum method, string postData) { EndPoint = endpoint; Method = method; ContentType = "text/xml"; PostData = postData; }
public HttpResponse <TResponse> SubmitRequest <TResponse>(string serviceUri, HttpVerbEnum httpVerb, HttpContentTypeEnum contentType, NameValueCollection header) { string MockResponse = "{\"ErrorReport\": null, \"InternalTime\": 137, \"MerchantKey\": \"F2A1F485-CFD4-49F5-8862-0EBC438AE923\", \"RequestKey\": \"857a5a07-ff3c-46e3-946e-452e25f149eb\", \"BoletoTransactionResultCollection\": [], \"BuyerKey\": \"00000000-0000-0000-0000-000000000000\", \"CreditCardTransactionResultCollection\": [ { \"AcquirerMessage\": \"Simulator|Transação de simulação autorizada com sucesso\", \"AcquirerName\": \"Simulator\", \"AcquirerReturnCode\": \"0\", \"AffiliationCode\": \"000000000\", \"AmountInCents\": 10000, \"AuthorizationCode\": \"168147\", \"AuthorizedAmountInCents\": 10000, \"CapturedAmountInCents\": 10000, \"CapturedDate\": \"2015-12-04T19:51:11\", \"CreditCard\": { \"CreditCardBrand\": \"Visa\", \"InstantBuyKey\": \"3b3b5b62-6660-428d-905e-96f49d46ae28\", \"IsExpiredCreditCard\": false, \"MaskedCreditCardNumber\": \"411111****1111\" }, \"CreditCardOperation\": \"AuthAndCapture\", \"CreditCardTransactionStatus\": \"Captured\", \"DueDate\": null, \"ExternalTime\": 0, \"PaymentMethodName\": \"Simulator\", \"RefundedAmountInCents\": null, \"Success\": true, \"TransactionIdentifier\": \"246844\", \"TransactionKey\": \"20ba0520-7d09-44f8-8fbc-e4329e2b18d5\", \"TransactionKeyToAcquirer\": \"20ba05207d0944f8\", \"TransactionReference\": \"1c65eaf7-df3c-4c7f-af63-f90fb6200996\", \"UniqueSequentialNumber\": \"636606\", \"VoidedAmountInCents\": null } ], \"OrderResult\": { \"CreateDate\": \"2015-12-04T19:51:11\", \"OrderKey\": \"219d7581-78e2-4aa9-b708-b7c585780bfc\", \"OrderReference\": \"NúmeroDoPedido\" }}"; TResponse responseObject = this.DeserializeObject <TResponse>(MockResponse, contentType); HttpResponse <TResponse> response = new HttpResponse <TResponse>(responseObject, MockResponse, System.Net.HttpStatusCode.Created); return(response); }
/// <summary> /// Chamada Async do HttoWebRequest /// </summary> /// <param name="dataToSend"></param> /// <param name="httpVerbEnum"></param> /// <param name="httpContentTypeEnum"></param> /// <param name="serviceEndpoint"></param> /// <param name="headerData"></param> /// <param name="allowInvalidCertificate"></param> public void SendHttpWebRequestAsync(string dataToSend, HttpVerbEnum httpVerbEnum, HttpContentTypeEnum httpContentTypeEnum, string serviceEndpoint, NameValueCollection headerData, bool allowInvalidCertificate = false) { Task.Factory.StartNew(() => { bool ignoreResponse = true; SendHttpWebRequest(dataToSend, httpVerbEnum, httpContentTypeEnum, serviceEndpoint, headerData, allowInvalidCertificate, ignoreResponse); }); }
/// <summary> /// Envia uma requisição para o gateway /// </summary> /// <typeparam name="TResponse">Tipo de resposta do gateway</typeparam> /// <param name="serviceUri">Url do serviço do gateway</param> /// <param name="httpVerb">HttpMethod utilizado na chamada ao serviço</param> /// <param name="contentType">Formato da resposta (XML ou JSON)</param> /// <param name="header">Cabeçalho da requisição</param> /// <returns></returns> public HttpResponse <TResponse> SubmitRequest <TResponse>(string serviceUri, HttpVerbEnum httpVerb, HttpContentTypeEnum contentType, NameValueCollection header) { Uri uri = new Uri(serviceUri); // Envia o request. HttpResponse <TResponse> response = this.SendHttpWebRequest <TResponse>(httpVerb, contentType, uri.ToString(), header); return(response); }
private HttpResponse <GetInstantBuyDataResponse> GetInstantBuyDataImplementation(Guid key, string identifierName) { string actionName = string.Format("/{0}{1}", identifierName, key.ToString()); HttpVerbEnum httpVerb = HttpVerbEnum.Get; NameValueCollection headers = this.GetHeaders(); headers.Add("MerchantKey", this.MerchantKey.ToString()); return(this.HttpUtility.SubmitRequest <GetInstantBuyDataResponse>(string.Concat(this.HostUri, this.ResourceName, actionName), httpVerb, HttpContentTypeEnum.Json, headers)); }
public HttpResponse <DeleteInstantBuyDataResponse> DeleteCreditCard(Guid instantBuyKey) { string actionName = string.Format("/{0}", instantBuyKey.ToString()); HttpVerbEnum httpVerb = HttpVerbEnum.Delete; NameValueCollection headers = this.GetHeaders(); headers.Add("MerchantKey", this.MerchantKey.ToString()); return(this.HttpUtility.SubmitRequest <DeleteInstantBuyDataResponse>(string.Concat(this.HostUri, this.ResourceName, actionName), httpVerb, HttpContentTypeEnum.Json, headers)); }
/// <summary> /// Implementação da chamada do método Query /// </summary> /// <param name="identifierName">Nome do identificador utilizado para realizar a consulta</param> /// <param name="value">Identificador utilizado para realizar a consulta</param> /// <returns></returns> private HttpResponse <QuerySaleResponse> QueryImplementation(string identifierName, string value) { string actionName = string.Format("/Query/{0}={1}", identifierName, value); HttpVerbEnum httpVerb = HttpVerbEnum.Get; NameValueCollection headers = this.GetHeaders(); headers.Add("MerchantKey", this.MerchantKey.ToString()); return(this.HttpUtility.SubmitRequest <QuerySaleResponse>(string.Concat(this.HostUri, this.ResourceName, actionName), httpVerb, HttpContentTypeEnum.Json, headers)); }
public HttpResponse <GetBuyerData> GetBuyer(Guid buyerKey) { string actionName = string.Format("/{0}", buyerKey.ToString()); HttpVerbEnum httpVerb = HttpVerbEnum.Get; NameValueCollection headers = this.GetHeaders(); headers.Add("MerchantKey", this.MerchantKey.ToString()); return(this.HttpUtility.SubmitRequest <GetBuyerData>(string.Concat(this.HostUri, this.ResourceName, actionName), httpVerb, HttpContentTypeEnum.Json, headers)); }
public HttpResponse <CreateInstantBuyDataResponse> CreateCreditCard(CreateInstantBuyDataRequest createInstantBuyDataRequest) { HttpVerbEnum httpVerb = HttpVerbEnum.Post; NameValueCollection headers = this.GetHeaders(); headers.Add("MerchantKey", this.MerchantKey.ToString()); return (this.HttpUtility.SubmitRequest <CreateInstantBuyDataRequest, CreateInstantBuyDataResponse>(createInstantBuyDataRequest, string.Concat(this.HostUri, this.ResourceName), httpVerb, HttpContentTypeEnum.Json, headers)); }
/// <summary> /// Cria uma requisição http e retorna um objeto do tipo especificado em TResponse. /// </summary> /// <typeparam name="TResponse"></typeparam> /// <param name="httpVerbEnum"></param> /// <param name="serviceEndpoint"></param> /// <param name="headerData"></param> /// <param name="allowInvalidCertificate"></param> /// <param name="ignoreResponse"></param> /// <returns></returns> private HttpResponse <TResponse> SendHttpWebRequest <TResponse>(HttpVerbEnum httpVerbEnum, HttpContentTypeEnum httpContentType, string serviceEndpoint, NameValueCollection headerData = null) { // Se o header é nulo, instancia um novo. headerData = headerData ?? new NameValueCollection(); // Envia o request. HttpResponse httpResponse = this.SendHttpWebRequest("", httpVerbEnum, httpContentType, serviceEndpoint, headerData); // Deserializa a resposta. TResponse responseObject = this.DeserializeObject <TResponse>(httpResponse.RawResponse, httpContentType); HttpResponse <TResponse> response = new HttpResponse <TResponse>(responseObject, httpResponse.RawResponse, httpResponse.HttpStatusCode); return(response); }
private HttpResponse <GetInstantBuyDataResponse> GetInstantBuyDataImplementation(Guid key, string identifierName) { if (string.IsNullOrWhiteSpace(identifierName) == false) { identifierName = string.Concat("/", identifierName); } string actionName = string.Format("/{0}{1}", key.ToString(), identifierName); HttpVerbEnum httpVerb = HttpVerbEnum.Get; NameValueCollection header = new NameValueCollection(); header.Add("MerchantKey", this.MerchantKey.ToString()); return(this.HttpUtility.SubmitRequest <GetInstantBuyDataResponse>(string.Concat(this.HostUri, this.ResourceName, actionName), httpVerb, this.HttpContentType, header)); }
/// <summary> /// Envio de HttpWebRequest /// </summary> /// <param name="dataToSend"></param> /// <param name="httpVerbEnum"></param> /// <param name="httpContentTypeEnum"></param> /// <param name="serviceEndpoint"></param> /// <param name="headerData"></param> /// <param name="allowInvalidCertificate"></param> /// <param name="ignoreResponse"></param> /// <returns></returns> private HttpResponse SendHttpWebRequest(string dataToSend, HttpVerbEnum httpVerbEnum, HttpContentTypeEnum httpContentTypeEnum, string serviceEndpoint, NameValueCollection headerData, bool allowInvalidCertificate = false) { if (string.IsNullOrWhiteSpace(serviceEndpoint)) { throw new ArgumentException("serviceEndpoint"); } // Cria um objeto webRequest para referenciando a Url do serviço informado Uri serviceUri = new Uri(serviceEndpoint); HttpWebRequest httpWebRequest = WebRequest.Create(serviceUri) as HttpWebRequest; httpWebRequest.Method = httpVerbEnum.ToString().ToUpper(); httpWebRequest.ContentType = httpContentTypeEnum == HttpContentTypeEnum.Json ? "application/json" : "text/xml"; httpWebRequest.Accept = httpContentTypeEnum == HttpContentTypeEnum.Json ? "application/json" : "text/xml"; if (headerData != null && headerData.AllKeys.Contains("User-Agent") == true) { httpWebRequest.UserAgent = headerData["User-Agent"]; headerData.Remove("User-Agent"); } // Verifica se certificados inválidos devem ser aceitos. if (allowInvalidCertificate == true) { ServicePointManager.ServerCertificateValidationCallback = delegate { return(true); }; } // Verifica se deverão ser enviados dados/chaves de cabeçalho if (headerData != null && headerData.Count > 0) { // Insere cada chave enviado no cabeçalho da requisição foreach (string key in headerData.Keys) { httpWebRequest.Headers.Add(key, headerData[key].ToString()); } } if (string.IsNullOrWhiteSpace(dataToSend) == false) { // Cria um array de bytes dos dados que serão postados byte[] byteData = UTF8Encoding.UTF8.GetBytes(dataToSend); // Configura o tamanho dos dados que serão enviados httpWebRequest.ContentLength = byteData.Length; // Escreve os dados na stream do WebRequest using (Stream stream = httpWebRequest.GetRequestStream()) { stream.Write(byteData, 0, byteData.Length); } } string rawResponse = string.Empty; HttpStatusCode statusCode = HttpStatusCode.OK; try { // Dispara a requisição e recebe o resultado da mesma using (HttpWebResponse response = httpWebRequest.GetResponse() as HttpWebResponse) { // Recupera a stream com a resposta da solicitação StreamReader streamReader = new StreamReader(response.GetResponseStream()); rawResponse = streamReader.ReadToEnd(); statusCode = response.StatusCode; } } catch (WebException ex) { HttpWebResponse response = (HttpWebResponse)ex.Response; StreamReader test = new StreamReader(response.GetResponseStream()); rawResponse = test.ReadToEnd(); statusCode = response.StatusCode; } return(new HttpResponse(rawResponse, statusCode)); }
public HttpResponse SendHttpWebRequest(string dataToSend, HttpVerbEnum httpVerbEnum, string contentType, string accept, string serviceEndpoint, NameValueCollection headerData) { throw new NotImplementedException(); }
/// <summary> /// Envio de HttpWebRequest /// </summary> /// <param name="dataToSend"></param> /// <param name="httpVerbEnum"></param> /// <param name="httpContentTypeEnum"></param> /// <param name="serviceEndpoint"></param> /// <param name="headerData"></param> /// <param name="allowInvalidCertificate"></param> /// <param name="ignoreResponse"></param> /// <returns></returns> public HttpResponse SendHttpWebRequest(string dataToSend, HttpVerbEnum httpVerbEnum, string contentType, string accept, string serviceEndpoint, NameValueCollection headerData) { if (string.IsNullOrWhiteSpace(serviceEndpoint)) { throw new ArgumentException("serviceEndpoint"); } // Cria um objeto webRequest para referenciando a Url do serviço informado var serviceUri = new Uri(serviceEndpoint); if (WebRequest.Create(serviceUri) is HttpWebRequest httpWebRequest) { httpWebRequest.Method = httpVerbEnum.ToString().ToUpper(); if (string.IsNullOrEmpty(contentType) == false) { httpWebRequest.ContentType = contentType; } if (string.IsNullOrEmpty(accept) == false) { httpWebRequest.Accept = accept; } if (headerData != null && headerData.AllKeys.Contains("User-Agent") == true) { httpWebRequest.UserAgent = headerData["User-Agent"]; headerData.Remove("User-Agent"); } // Verifica se deverão ser enviados dados/chaves de cabeçalho if (headerData != null && headerData.Count > 0) { // Insere cada chave enviado no cabeçalho da requisição foreach (string key in headerData.Keys) { httpWebRequest.Headers.Add(key, headerData[key].ToString()); } } if (string.IsNullOrWhiteSpace(dataToSend) == false) { // Cria um array de bytes dos dados que serão postados byte[] byteData = Encoding.UTF8.GetBytes(dataToSend); // Configura o tamanho dos dados que serão enviados httpWebRequest.ContentLength = byteData.Length; // Escreve os dados na stream do WebRequest using (Stream stream = httpWebRequest.GetRequestStream()) { stream.Write(byteData, 0, byteData.Length); } } string rawResponse = null; HttpStatusCode statusCode = HttpStatusCode.OK; try { // Dispara a requisição e recebe o resultado da mesma using (var response = httpWebRequest.GetResponse() as HttpWebResponse) { // Recupera a stream com a resposta da solicitação if (response != null) { var streamReader = new StreamReader(response.GetResponseStream() ?? throw new InvalidOperationException()); rawResponse = streamReader.ReadToEnd(); } if (response != null) { statusCode = response.StatusCode; } } } catch (WebException ex) { if (ex.Response == null) { throw; } var response = (HttpWebResponse)ex.Response; var test = new StreamReader(response.GetResponseStream() ?? throw new InvalidOperationException()); rawResponse = test.ReadToEnd(); statusCode = response.StatusCode; } return(new HttpResponse(rawResponse, statusCode)); } throw new ArgumentException("serviceEndpoint"); }
/// <summary> /// Envio de HttpWebRequest /// </summary> /// <param name="dataToSend"></param> /// <param name="httpVerbEnum"></param> /// <param name="httpContentTypeEnum"></param> /// <param name="serviceEndpoint"></param> /// <param name="headerData"></param> /// <param name="allowInvalidCertificate"></param> /// <param name="ignoreResponse"></param> /// <returns></returns> public string SendHttpWebRequest(string dataToSend, HttpVerbEnum httpVerbEnum, HttpContentTypeEnum httpContentTypeEnum, string serviceEndpoint, NameValueCollection headerData, bool allowInvalidCertificate = false, bool ignoreResponse = false) { if (string.IsNullOrWhiteSpace(serviceEndpoint)) { throw new ArgumentException("serviceEndpoint"); } // Cria um objeto webRequest para referenciando a Url do serviço informado Uri serviceUri = new Uri(serviceEndpoint); HttpWebRequest httpWebRequest = WebRequest.Create(serviceUri) as HttpWebRequest; httpWebRequest.Method = httpVerbEnum.ToString().ToUpper(); httpWebRequest.ContentType = httpContentTypeEnum == HttpContentTypeEnum.Json ? "application/json" : "text/xml"; httpWebRequest.Accept = httpContentTypeEnum == HttpContentTypeEnum.Json ? "application/json" : "text/xml"; httpWebRequest.ContentLength = 0; // Verifica se certificados inválidos devem ser aceitos. ServicePointManager.ServerCertificateValidationCallback = ((sender, certificate, chain, sslPolicyErrors) => allowInvalidCertificate); // Verifica se deverão ser enviados dados/chaves de cabeçalho if (headerData.Count > 0) { // Insere cada chave enviado no cabeçalho da requisição foreach (string key in headerData.Keys) { httpWebRequest.Headers.Add(key, headerData[key].ToString()); } } if (string.IsNullOrWhiteSpace(dataToSend) == false) { // Cria um array de bytes dos dados que serão postados byte[] byteData = UTF8Encoding.UTF8.GetBytes(dataToSend); // Configura o tamanho dos dados que serão enviados httpWebRequest.ContentLength = byteData.Length; // Escreve os dados na stream do WebRequest using (Stream stream = httpWebRequest.GetRequestStream()) { stream.Write(byteData, 0, byteData.Length); } } string returnString = string.Empty; try { // Dispara a requisição e recebe o resultado da mesma using (HttpWebResponse response = httpWebRequest.GetResponse() as HttpWebResponse) { if (ignoreResponse == false) { // Recupera a stream com a resposta da solicitação StreamReader streamReader = new StreamReader(response.GetResponseStream()); returnString = streamReader.ReadToEnd(); } } } catch (WebException ex) { throw ex; } return(returnString); }
public RestClient(string endPoint, HttpVerbEnum method, string contentType) { EndPoint = endPoint; Method = method; ContentType = contentType; }
public HttpResponse <TResponse, TRequest> SubmitRequest <TRequest, TResponse>(TRequest request, string serviceUri, HttpVerbEnum httpVerb, HttpContentTypeEnum contentType, NameValueCollection header) { string rawRequest = this.SerializeObject <TRequest>(request, contentType); TResponse responseObject = this.DeserializeObject <TResponse>(MockRawResponse, contentType); HttpResponse <TResponse> response_ = new HttpResponse <TResponse>(responseObject, MockRawResponse, System.Net.HttpStatusCode.Created); HttpResponse <TResponse, TRequest> response = new HttpResponse <TResponse, TRequest>(request, rawRequest, responseObject, MockRawResponse, MockStatusCode); return(response); }