/// <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); }
/// <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); }
/// <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); }