Пример #1
0
 static void AdicionaDadosEnvio(HttpWebRequest requisicao, object dadosEnvio, ETipoConteudoApi tipoConteudo = ETipoConteudoApi.Json)
 {
     using (var streamWriter = new StreamWriter(requisicao.GetRequestStream()))
     {
         streamWriter.Write(Serializa(dadosEnvio, tipoConteudo));
     }
 }
Пример #2
0
        static HttpWebRequest GeraRequisicao(string url, ETipoConteudoApi tipoConteudo, EMetodoApi metodo, int?timeOut)
        {
            var Requisicao = (HttpWebRequest)WebRequest.Create(url);

            Requisicao.ContentType = ObterTipoConteudo(tipoConteudo);
            Requisicao.Timeout     = timeOut ?? Requisicao.Timeout;
            Requisicao.Method      = metodo.ToString().ToUpper();
            return(Requisicao);
        }
Пример #3
0
        static T Deserializa <T>(string valor, ETipoConteudoApi tipoConteudo)
        {
            switch (tipoConteudo)
            {
            case ETipoConteudoApi.Json:
                return(Serializador.DeserializaJson <T>(valor));
            }

            throw new NotImplementedException("Este tipo não está implementado");
        }
Пример #4
0
        static string Serializa(object objeto, ETipoConteudoApi tipoConteudo)
        {
            switch (tipoConteudo)
            {
            case ETipoConteudoApi.Json:
                return(Serializador.SerializaJson(objeto));

            case ETipoConteudoApi.Xml:
                return(Serializador.SerializaXml(objeto));

            default:
                throw new ApplicationException("Tipo de conteúdo não implementado");
            }
        }
Пример #5
0
        public static void Envia(object objeto, string url, ETipoConteudoApi tipoConteudo = ETipoConteudoApi.Json, EMetodoApi metodo = EMetodoApi.Post, int?timeOut = null)
        {
            var Requisicao = GeraRequisicao(url, tipoConteudo, metodo, timeOut);

            AdicionaDadosEnvio(Requisicao, objeto);
        }
Пример #6
0
        public static string RecebeRetornoSerializado(string url, object dadosEnvio = null, ETipoConteudoApi tipoConteudo = ETipoConteudoApi.Json, EMetodoApi metodo = EMetodoApi.Get, int?timeOut = null)
        {
            if (metodo == EMetodoApi.Get && dadosEnvio != null)
            {
                foreach (var propriedade in dadosEnvio.GetType().GetProperties())
                {
                    var caracterJuncao = "?";
                    caracterJuncao = url.Contains(caracterJuncao) ? "&" : caracterJuncao;

                    url += string.Format("{0}{1}={2}", caracterJuncao, propriedade.Name, propriedade.GetValue(dadosEnvio));
                }
            }

            var Requisicao = GeraRequisicao(url, tipoConteudo, metodo, timeOut);

            if (metodo != EMetodoApi.Get && dadosEnvio != null)
            {
                AdicionaDadosEnvio(Requisicao, dadosEnvio);
            }
            else
            {
                Requisicao.ContentLength = 0;
            }

            return(ObterResultado(Requisicao));
        }
Пример #7
0
        public static T RecebeRetornoDeserializado <T>(string url, object dadosEnvio = null, ETipoConteudoApi tipoConteudo = ETipoConteudoApi.Json, EMetodoApi metodo = EMetodoApi.Get, int?timeOut = null)
        {
            var retorno = RecebeRetornoSerializado(url, dadosEnvio, tipoConteudo, metodo, timeOut);

            return(Deserializa <T>(retorno, tipoConteudo));
        }
Пример #8
0
 static string ObterTipoConteudo(ETipoConteudoApi tipoConteudo)
 {
     return(string.Format("application/{0}", tipoConteudo.ToString().ToLower()));
 }