コード例 #1
0
        /// <summary>
        ///    Put请求
        /// </summary>
        /// <typeparam name="TResut">返回结果的泛型类型</typeparam>
        /// <typeparam name="TData">输入参数的泛型类型</typeparam>
        /// <param name="uri">指定的uri,不包含主机地址</param>
        /// <param name="mediaType">指定的结果返回类型</param>
        /// <param name="body">泛型,用于post的请求参数</param>
        /// <param name="header">系统级参数的头信息</param>
        /// <returns>发送Put请求并返回泛型T的结果</returns>
        public TResut PutAsync <TResut, TData>(string uri, MediaTypeEnum mediaType, TData body, HeaderRequestInfo header)
        {
            var defaultT = default(TResut);

            // 设置响应格式
            httpClient.DefaultRequestHeaders.Accept.Add(HeaderInfoUtility.GetMediaTpye(mediaType));

            // 设置系统级参数的响应头
            httpClient.DefaultRequestHeaders.SetRequestHeadInfo(header);
            Requestheader = header;

            // 发送http
            var         jsonFormatter = new JsonMediaTypeFormatter();
            HttpContent txtContent    = new ObjectContent <TData>(body, jsonFormatter);
            var         response      = httpClient.PutAsync(uri, txtContent).Result;

            if (response.IsSuccessStatusCode)
            {
                defaultT = response.Content.ReadAsAsync <TResut>().Result;
            }

            // ResponseHeader
            ResponseHeader = response.Headers.GetResponseHeadInfo();


            // Return
            return(defaultT);
        }
コード例 #2
0
        /// <summary>
        /// Delete操作
        /// </summary>
        /// <summary>
        ///     Delete请求
        /// </summary>
        /// <param name="uri">
        ///     The uri 是指定资源除主机地址外的唯一定位地址.
        /// </param>
        /// <param name="mediaType">
        ///     The media Type 是指定数据返回的格式.
        /// </param>
        /// <param name="header">系统级参数的头信息</param>
        /// <typeparam name="T">
        ///     获取结果的泛型实体
        /// </typeparam>
        /// <typeparam name="TResut">The TResult</typeparam>
        /// <returns>
        ///     返回Put的结果
        /// </returns>
        public TResut DeleteAsync <TResut>(string uri, MediaTypeEnum mediaType, HeaderRequestInfo header)
        {
            var defaultT = default(TResut);

            // 设置响应格式
            httpClient.DefaultRequestHeaders.Accept.Add(HeaderInfoUtility.GetMediaTpye(mediaType));

            // 设置系统级参数的响应头
            httpClient.DefaultRequestHeaders.SetRequestHeadInfo(header);
            Requestheader = header;

            // 发送http
            var response = httpClient.DeleteAsync(uri).Result;

            if (response.IsSuccessStatusCode)
            {
                defaultT = response.Content.ReadAsAsync <TResut>().Result;
            }

            // headInfo
            ResponseHeader = response.Headers.GetResponseHeadInfo();


            return(defaultT);
        }
コード例 #3
0
        /// <summary>
        ///     Get请求
        /// </summary>
        /// <param name="uri">
        ///     The uri 是指定资源除主机地址外的唯一定位地址.
        /// </param>
        /// <param name="mediaType">
        ///     The media Type 是指定数据返回的格式.
        /// </param>
        /// <param name="header">系统级参数的头信息</param>
        /// <typeparam name="T">
        ///     获取结果的泛型实体
        /// </typeparam>
        /// <returns>
        ///     返回Get的结果
        /// </returns>
        public T GetAsync <T>(string uri, MediaTypeEnum mediaType, HeaderRequestInfo header)
        {
            var defaultT = default(T);

            // 设置响应格式
            httpClient.DefaultRequestHeaders.Accept.Add(HeaderInfoUtility.GetMediaTpye(mediaType));

            // 设置系统级参数的响应头
            httpClient.DefaultRequestHeaders.SetRequestHeadInfo(header);
            Requestheader = header;

            // 发送http
            var response = httpClient.GetAsync(uri).Result;

            if (response.IsSuccessStatusCode)
            {
                try
                {
                    defaultT = response.Content.ReadAsAsync <T>().Result;
                }
                catch (Exception)
                {
                    try
                    {
                        defaultT = (T)(Object)response.Content.ReadAsStringAsync().Result;
                    }
                    catch (Exception exception)
                    {
                        throw new Exception("无法将取的值转换成指定的泛型,原因为:" + exception.Message);
                    }

                    //throw;
                }
            }
            // headInfo
            ResponseHeader = response.Headers.GetResponseHeadInfo();

            return(defaultT);
        }