C# HttpClientHelper请求
- public class HttpClientHelper
- {
- /// <summary>
- /// get请求
- /// </summary>
- /// <param name="url"></param>
- /// <returns></returns>
- public static string GetResponse(string url)
- {
- if (url.StartsWith("https"))
- System.Net.ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls;
- HttpClient httpClient = new HttpClient();
- httpClient.DefaultRequestHeaders.Accept.Add(
- new MediaTypeWithQualityHeaderValue("application/json"));
- HttpResponseMessage response = httpClient.GetAsync(url).Result;
- if (response.IsSuccessStatusCode)
- {
- string result = response.Content.ReadAsStringAsync().Result;
- return result;
- }
- return null;
- }
- public static T GetResponse<T>(string url)
- where T : class,new()
- {
- if (url.StartsWith("https"))
- System.Net.ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls;
- HttpClient httpClient = new HttpClient();
- httpClient.DefaultRequestHeaders.Accept.Add(
- new MediaTypeWithQualityHeaderValue("application/json"));
- HttpResponseMessage response = httpClient.GetAsync(url).Result;
- T result = default(T);
- if (response.IsSuccessStatusCode)
- {
- Task<string> t = response.Content.ReadAsStringAsync();
- string s = t.Result;
- result = JsonConvert.DeserializeObject<T>(s);
- }
- return result;
- }
- /// <summary>
- /// post请求
- /// </summary>
- /// <param name="url"></param>
- /// <param name="postData">post数据</param>
- /// <returns></returns>
- public static string PostResponse(string url, string postData)
- {
- if (url.StartsWith("https"))
- System.Net.ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls;
- HttpContent httpContent = new StringContent(postData);
- httpContent.Headers.ContentType = new MediaTypeHeaderValue("application/json");
- HttpClient httpClient = new HttpClient();
- HttpResponseMessage response = httpClient.PostAsync(url, httpContent).Result;
- if (response.IsSuccessStatusCode)
- {
- string result = response.Content.ReadAsStringAsync().Result;
- return result;
- }
- return null;
- }
- /// <summary>
- /// 发起post请求
- /// </summary>
- /// <typeparam name="T"></typeparam>
- /// <param name="url">url</param>
- /// <param name="postData">post数据</param>
- /// <returns></returns>
- public static T PostResponse<T>(string url, string postData)
- where T : class,new()
- {
- if (url.StartsWith("https"))
- System.Net.ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls;
- HttpContent httpContent = new StringContent(postData);
- httpContent.Headers.ContentType = new MediaTypeHeaderValue("application/json");
- HttpClient httpClient = new HttpClient();
- T result = default(T);
- HttpResponseMessage response = httpClient.PostAsync(url, httpContent).Result;
- if (response.IsSuccessStatusCode)
- {
- Task<string> t = response.Content.ReadAsStringAsync();
- string s = t.Result;
- result = JsonConvert.DeserializeObject<T>(s);
- }
- return result;
- }
- /// <summary>
- /// V3接口全部为Xml形式,故有此方法
- /// </summary>
- /// <typeparam name="T"></typeparam>
- /// <param name="url"></param>
- /// <param name="xmlString"></param>
- /// <returns></returns>
- public static T PostXmlResponse<T>(string url, string xmlString)
- where T : class,new()
- {
- if (url.StartsWith("https"))
- System.Net.ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls;
- HttpContent httpContent = new StringContent(xmlString);
- httpContent.Headers.ContentType = new MediaTypeHeaderValue("application/json");
- HttpClient httpClient = new HttpClient();
- T result = default(T);
- HttpResponseMessage response = httpClient.PostAsync(url, httpContent).Result;
- if (response.IsSuccessStatusCode)
- {
- Task<string> t = response.Content.ReadAsStringAsync();
- string s = t.Result;
- result = XmlDeserialize<T>(s);
- }
- return result;
- }
- /// <summary>
- /// 反序列化Xml
- /// </summary>
- /// <typeparam name="T"></typeparam>
- /// <param name="xmlString"></param>
- /// <returns></returns>
- public static T XmlDeserialize<T>(string xmlString)
- where T : class,new ()
- {
- try
- {
- XmlSerializer ser = new XmlSerializer(typeof(T));
- using (StringReader reader = new StringReader(xmlString))
- {
- return (T)ser.Deserialize(reader);
- }
- }
- catch (Exception ex)
- {
- throw new Exception("XmlDeserialize发生异常:xmlString:" + xmlString + "异常信息:" + ex.Message);
- }
- }
- }
C# HttpClientHelper请求的更多相关文章
- .Net之简单通知服务
开篇语 这两天看见有大佬分享使用钉钉和企业微信的机器人来做通知报警,然后我想到了我使用的另一个第三方软件捷易快信(可能大家都不知道这个东西,我也忘了我最开始是咋知道的),该服务的优点是可以通过微信进行 ...
- C#微信开发之旅(二):基础类之HttpClientHelper(更新:SSL安全策略)
public class HttpClientHelper 2 { 3 /// <summary> 4 /// get请求 5 ...
- Android实现异步处理 -- HTTP请求
原帖:http://www.cnblogs.com/answer1991/archive/2012/04/22/2464524.html Android操作UI的方法不是线程安全的,也就是说开发者自己 ...
- commons-httpclient 实现get和post请求
引入的jar包为: <!-- https://mvnrepository.com/artifact/commons-httpclient/commons-httpclient --> &l ...
- java 常见几种发送http请求案例
import java.io.FileOutputStream; import java.io.IOException; import java.io.InputStream; import java ...
- Java Http 请求
package zr.weixin.com.utils; import java.io.BufferedReader; import java.io.IOException; import java. ...
- c# Http请求之HttpClient
利用HttpClient进行Http请求,基于此,简单地封装了下: using System; using System.Collections.Generic; using System.Colle ...
- java Http post请求发送json字符串
最近差点被业务逻辑搞懵逼,果然要先花时间思考,确定好流程再执行.目前最好用的jar包还是org.apache.http. public class HttpClientHelper { private ...
- httpcomponents 发送get post请求
引入的包为: <!-- https://mvnrepository.com/artifact/org.apache.httpcomponents/httpclient --> <de ...
随机推荐
- ajaxfileupload异步上传附件添加參数的方法
1.js文件 // JavaScript Document jQuery.extend({ createUploadIframe: function(id, uri) { //create frame ...
- 山寨一个std::bind\boost::bind
这里是最初始的版本,参考https://github.com/cplusplus-study/fork_stl/blob/master/include/bind.hpp 提供了最简洁的实现方式. 第一 ...
- linux命令(31):more
一.more命令 more功能类似 cat ,cat命令是整个文件的内容从上到下显示在屏幕上. more会以一页一页的显示方便使用者逐页阅读,而最基本的指令就是按空白键(space)就往下一页显示,按 ...
- 深入理解Eureka - Eureka配置列表
Eureka包含四个部分的配置 instance:当前Eureka Instance实例信息配置 client:Eureka Client客户端特性配置 server:Eureka Server注册中 ...
- eclipse的remote search
一般你希望以部分文件名作为关键字的时候,可以选择这个搜索选项,当然你也可以选择操作系统自带的搜索功能
- LeetCode: Regular Expression Matching 解题报告
Roman to IntegerGiven a roman numeral, convert it to an integer. Input is guaranteed to be within th ...
- Linux maven 下 jar包下载不下来的解决方法
在项目中遇到一个问题,使用推送的中间件,结果使用maven下载不下来,当时就直接手动下载后,copy到本地仓库了, 结果发布的时候遇到问题了. 因为发布是直接在测试服务器上,将提交的svn代码进行打包 ...
- Android笔记(十一)第一个Fragment
Fragment是碎片的意思,能够參照Activity来理解Fragment,由于它们都能包括布局,都有自己的生命周期. 以下我们要让主活动包括两个碎片,而且让两个碎片充满屏幕 1.首先,新建两个碎片 ...
- plot sin 04 坐标轴居中
plot sin 04 坐标轴居中 code #!/usr/bin/env python # -*- coding: utf-8 -*- import numpy as np import matpl ...
- 模仿Struts2的Interceptor拦截器实现
模仿Struts2的Interceptor拦截器实现 public interface Invocation { public Object invoke(); } public interface ...