/// <summary>
        /// Web Request Wrapper
        /// </summary>
        /// <param name="method">Http Method</param>
        /// <param name="url">Full url to the web resource</param>
        /// <param name="postData">Data to post in querystring format</param>
        /// <param name="headers">Additional Header Data</param>
        /// <returns>The web server response.</returns>
        public string WebRequest(Enums.Method method, string url, string postData, List <KeyValuePair <string, string> > headers, string contentType)
        {
            HttpWebRequest webRequest    = null;
            StreamWriter   requestWriter = null;
            string         responseData  = "";

            webRequest = System.Net.WebRequest.Create(url) as HttpWebRequest;
            if (headers != null)
            {
                foreach (KeyValuePair <string, string> header in headers)
                {
                    webRequest.Headers.Add(header.Key, header.Value);
                }
            }

            webRequest.Method = method.ToString();
            webRequest.ServicePoint.Expect100Continue = false;

            if (method == Enums.Method.POST || method == Enums.Method.DELETE)
            {
                webRequest.ContentType = contentType;
                //POST the data.
                using (requestWriter = new StreamWriter(webRequest.GetRequestStream()))
                {
                    requestWriter.Write(postData);
                    requestWriter.Close();
                }
            }

            responseData = WebResponseGet(webRequest);
            webRequest   = null;

            return(responseData);
        }
Exemplo n.º 2
0
        public static string ConsumirAPIConToken(Enums.Method method, string request, string BaseURL, string servicePrefix, string controller, string Token = "")
        {
            try
            {
                System.Net.ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls12;

                string response;
                var    ruta = string.Format("{0}{1}{2}", BaseURL, servicePrefix, controller);
                using (var client = new WebClient())
                {
                    client.Encoding = System.Text.Encoding.UTF8;

                    client.Headers[HttpRequestHeader.ContentType] = "application/json; charset=utf-8";

                    if (Token != "")
                    {
                        client.Headers[HttpRequestHeader.Authorization] = "Bearer " + Token;
                    }
                    if (method == Enums.Method.POST)
                    {
                        response = client.UploadString(ruta, method.ToString(), request);
                    }
                    else
                    {
                        response = client.DownloadString(ruta);
                    }

                    /// Y LA 'RETORNAMOS'
                    return(response);
                }
            }
            catch (WebException ex)
            {
                var excepcion = (HttpWebResponse)ex.Response;
                if (excepcion != null && excepcion.StatusCode.Equals(HttpStatusCode.Unauthorized))
                {
                    string respuesta;
                    try
                    {
                        var ruta = string.Format("{0}{1}{2}", BaseURL, servicePrefix, controller);

                        using (var client = new WebClient())
                        {
                            client.Encoding = System.Text.Encoding.UTF8;
                            client.Headers[HttpRequestHeader.ContentType]   = "application/json; charset=utf-8";
                            client.Headers[HttpRequestHeader.Authorization] = "Bearer " + GetToken();
                            if (method == Enums.Method.POST)
                            {
                                respuesta = client.UploadString(ruta, method.ToString(), request);
                            }
                            else
                            {
                                respuesta = client.DownloadString(ruta);
                            }

                            /// Y LA 'RETORNAMOS'
                            return(respuesta);
                        }
                    }
                    catch (Exception ex2) { }
                }
                return(null);
            }
            catch
            {
                return(null);
            }
        }