Пример #1
0
        /// <summary>
        /// Get description cotentType
        /// </summary>
        /// <param name="contentType"></param>
        /// <returns></returns>
        private string GetContentTypeFromEnum(ContentTypeBody contentType)
        {
            FieldInfo fi = contentType.GetType().GetField(contentType.ToString());

            DescriptionAttribute[] attributes = (DescriptionAttribute[])fi.GetCustomAttributes(typeof(DescriptionAttribute), false);
            if (attributes.Length > 0)
            {
                return(attributes[0].Description);
            }
            else
            {
                return(contentType.ToString());
            }
        }
Пример #2
0
        /// <summary>
        /// metodo encargado de realizar un post a un servicio web
        /// </summary>
        /// <param name="urlBase"></param>
        /// <param name="resourceBase"></param>
        /// <param name="parameters"></param>
        /// <param name="headers"></param>
        /// <param name="bodySerilizer"></param>
        /// <param name="contentType"></param>
        /// <returns></returns>
        private ResponseServiceRequest Post(string urlBase, string resourceBase, List <Tuple <string, string> > parameters, List <Tuple <string, string> > headers, String bodySerilizer, ContentTypeBody contentType)
        {
            ResponseServiceRequest reponseServiceRequets = null;

            try
            {
                if (!String.IsNullOrEmpty(resourceBase) && !String.IsNullOrEmpty(urlBase))
                {
                    if (urlBase[urlBase.Length - 1] == '/' || urlBase[urlBase.Length - 1] == '\\')
                    {
                        urlBase = urlBase.Remove(urlBase.Length - 1);
                    }


                    if (resourceBase[0] == '/' || resourceBase[0] == '\\')
                    {
                        resourceBase = resourceBase.Remove(0);
                    }



                    urlBase = String.Concat(urlBase, "/", resourceBase);

                    urlBase = AddParameterUrl(urlBase, parameters);


                    HttpWebRequest request = (HttpWebRequest)WebRequest.Create(urlBase);

                    request.Method = MethodHttp.POST.ToString();

                    request.ContentType = GetContentTypeFromEnum(contentType);

                    if (headers != null && headers.Count > 0)
                    {
                        foreach (Tuple <String, String> header in headers)
                        {
                            request.Headers.Add(header.Item1, header.Item2);
                        }
                    }

                    if (String.IsNullOrEmpty(bodySerilizer))
                    {
                        request.ContentLength = 0;
                    }

                    if (bodySerilizer != null)
                    {
                        using (var streamWriter = new StreamWriter(request.GetRequestStream()))
                        {
                            streamWriter.Write(bodySerilizer);
                            streamWriter.Flush();
                            streamWriter.Close();
                        }
                    }


                    HttpWebResponse httpResponse = (HttpWebResponse)request.GetResponse();

                    reponseServiceRequets = new ResponseServiceRequest()
                    {
                        HttpStatusCode = httpResponse.StatusCode,
                    };

                    using (var streamReader = new StreamReader(httpResponse.GetResponseStream()))
                    {
                        reponseServiceRequets.StreamReaderResult = streamReader.ReadToEnd();
                        streamReader.Close();
                    }
                }
            }
            catch (WebException exceptionWeb)
            {
                reponseServiceRequets = GetResponseException(exceptionWeb);
            }
            catch (UriFormatException)
            {
                reponseServiceRequets = GetResponseExceptionUrlFormat();
            }
            return(reponseServiceRequets);
        }
Пример #3
0
 /// <summary>
 /// Metoto encargado de enviar un post por medio de un contrato
 /// </summary>
 /// <param name="urlBase"></param>
 /// <param name="resourceBase"></param>
 /// <param name="parameters"></param>
 /// <param name="headers"></param>
 /// <param name="bodyRequest"></param>
 /// <param name="contentType"></param>
 /// <returns></returns>
 ResponseServiceRequest IServiceRequestHttp.Post(string urlBase, string resourceBase, List <Tuple <string, string> > parameters, List <Tuple <string, string> > headers, string bodySerilizer, ContentTypeBody contentType)
 {
     return(Post(urlBase, resourceBase, parameters, headers, bodySerilizer, contentType));
 }
Пример #4
0
 /// <summary>
 /// Metoto postAsyncrono encargado
 /// </summary>
 /// <param name="urlBase"></param>
 /// <param name="resourceBase"></param>
 /// <param name="parameters"></param>
 /// <param name="headers"></param>
 /// <param name="bodySerilizer"></param>
 /// <param name="contentType"></param>
 /// <returns></returns>
 public async Task <ResponseServiceRequest> PostAsync(string urlBase, string resourceBase, List <Tuple <string, string> > parameters, List <Tuple <string, string> > headers, string bodySerilizer, ContentTypeBody contentType)
 {
     return(await Task.Factory.StartNew(() => Post(urlBase, resourceBase, parameters, headers, bodySerilizer, contentType)));
 }