public class HttpClientHelper<T>
{
/// <summary>
/// Get请求 返回实体
/// </summary>
/// <param name="url"></param>
/// <param name="t"></param>
/// <returns></returns>
public static T Get(string url, T t)
{
HttpClient client = new HttpClient();
client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));
var result = client.GetAsync(url).Result;
if (result.IsSuccessStatusCode)
{
string re = result.Content.ReadAsStringAsync().Result;
var jo = JObject.Parse(re);
JSchema schema = JSchema.Parse(JsonConvert.SerializeObject(t));
if (jo.IsValid(schema))
{
var m = JsonConvert.DeserializeObject<T>(re);
return m;
}
else
{
return default(T);
}
}
else
{
return default(T);
}
} /// <summary>
/// Get请求 返回string
/// </summary>
/// <param name="url"></param>
/// <param name="t"></param>
/// <returns></returns>
public static string Get(string url)
{
HttpClient client = new HttpClient();
client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));
var result = client.GetAsync(url).Result;
if (result.IsSuccessStatusCode)
{
string re = result.Content.ReadAsStringAsync().Result;
return re;
}
else
{
return "";
}
} /// <summary>
/// Post请求 返回实体
/// </summary>
/// <param name="url"></param>
/// <param name="t"></param>
/// <returns></returns>
public static T Post(string url, T t, string json = null)
{
var client = new HttpClient(); var postContent = new StringContent(json, UTF8Encoding.UTF8, "application/json");
var result = client.PostAsync(url, postContent).Result;
if (result.IsSuccessStatusCode)
{
string re = result.Content.ReadAsStringAsync().Result;
var jo = JObject.Parse(re);
JSchema schema = JSchema.Parse(JsonConvert.SerializeObject(t));
if (jo.IsValid(schema))
{
var m = JsonConvert.DeserializeObject<T>(re);
return m;
}
else
{
return default(T);
}
}
return default(T);
} /// <summary>
/// Post请求 返回string
/// </summary>
/// <param name="url"></param>
/// <param name="t"></param>
/// <returns></returns>
public static string Post(string url, string json =null)
{
var client = new HttpClient();
var postContent = new StringContent(json, UTF8Encoding.UTF8, "application/json");
var result = client.PostAsync(url, postContent).Result;
if (result.IsSuccessStatusCode)
{
return result.Content.ReadAsStringAsync().Result;
}
return null;
} }

.net HttpClient 回传实体帮助类的更多相关文章

  1. [Mime] MimeEntity--MimeEntity Mime实体帮助类 (转载)

    点击下载 MimeEntity.rar 这个类是关于Mime实体的类看下面代码吧 /// <summary> /// 类说明:Assistant /// 编 码 人:苏飞 /// 联系方式 ...

  2. 利用Xml架构生成实体访问类

    由xml生成xsd及实体类   xmldataset工具 使用VS2005工具XSD.exe(SDK/v2.0/Bin/xsd.exe)自动生成实体类: xsd /c /namespace:myCom ...

  3. abp 修改abp.zero的实体映射类,使生成的表和字段为大写状态

    在我们项目中,由于涉及到报表配置管理,可以通过一段sql快捷的配置出一个报表页面.部分sql会与abp框架的一些系统表做关联查询,而abp的映射类没有单独设置表和字段的名称,默认用类名和属性名,区分大 ...

  4. 实体类与实体DTO类之间的转换

    实体类与实体DTO类之间的转换 实体类与实体DTO类之间的转换 1.通过使用第三方序列化反序列化工具Newtonsoft.Json 2.通过反射实现 3.通过表达式目录树加字典缓存实现 4. 通过表达 ...

  5. Intellij IDEA集成mybatis-generator插件自动生成数据库实体操作类

    Intellij IDEA集成mybatis-generator插件自动生成数据库实体操作类 转载至:https://blog.csdn.net/fishinhouse/article/details ...

  6. C# HttpClient请求Webapi帮助类

    引用 Newtonsoft.Json // Post请求 public string PostResponse(string url,string postData,out string status ...

  7. c#遍历并判断实体或类的成员属性

    c#的Attribute有些类似java中的annotation,可以方便地在类成员中做修饰/限制作用. Demo: class ss { public stat BsonDocument Itera ...

  8. Hibernate 实体映射类的状态值自动转换

    经常会遇到有些字段在数据库只是一个 byte 值,但是取出数据后需要转换为真实的状态名称. 举个栗子:一个图书管理系统,书籍有一个属性 stat(借出状态),在库中只需要保存一个 0/1/2/3/4 ...

  9. JSON字符串转C#实体Class类

    在项目开发过程中,经常需要和不同部门或者不同的组员一起协同工作,但对方写的json返回的结果集,我们需要用,那么如何来生成对应的类代码和实体对象呢?于是参考了网上的做法,做一个简单的字符串转实体类的功 ...

随机推荐

  1. Python面试题(2)

    1.一行代码实现1-100的和 ? 1 2 3 print(sum(range(1,101))) #range中的参数是1<=i<101 #sum是计算参数的和 2.在函数内部改变全局变量 ...

  2. luoguP4197:Peaks(Kruskal重构树+主席树)或者(点分树+离线)

    题意:有N座山,M条道路.山有山高,路有困难值(即点权和边权).现在Q次询问,每次给出(v,p),让求从v出发,只能结果边权<=p的边,问能够到达的山中,第K高的高度(从大到小排序). 思路:显 ...

  3. hadoop 参数大全

    方法一.可以通过hadoop官方网址查询, 网址如下: http://hadoop.apache.org/docs/current/hadoop-project-dist/hadoop-common/ ...

  4. 第03组 Beta冲刺(4/4)

    队名:不等式方程组 组长博客 作业博客 团队项目进度 组员一:张逸杰(组长) 过去两天完成的任务: 文字/口头描述: 制定了初步的项目计划,并开始学习一些推荐.搜索类算法 GitHub签入纪录: 暂无 ...

  5. pcm混音的一种方式

    转载 混音: Mix的意思是混音,无论在自然界,还是在音频处理领域这都是非常普遍的现象.自然界里你能同时听到鸟鸣和水声,这是因为鸟鸣和水声的波形在空气中形成了叠加,耳朵听到后能区分鸟鸣和水声这两种波形 ...

  6. quick: iskindof使用注意

    quick: iskindof使用注意 --[[-- 如果对象是指定类或其子类的实例,返回 true,否则返回 false ~~~ lua local Animal = class("Ani ...

  7. [算法模版]Link-Cut-Tree

    [算法模版]Link-Cut-Tree 博主懒本博客只对现有博客进行补充,先直接放隔壁链接. FlashHu-LCT总结 Menci-LCT学习笔记 make-root操作 make-root操作用于 ...

  8. Web中线程与IIS线程池自动回收机制

    开发Web项目后,部署到 IIS上 ,运行一直稳定,当Web程序中加入了定时任务,或者线程之类的机制后,第二天发现悲催了,定时任务并没有执行,此时重新登录一下网站,定时任务又重新执行.原来IIS默认有 ...

  9. IDEA-Maven的Dependencies中出现红色波浪线

    解决方法:移除相关依赖,再重新添加即可 情况及具体解决方法如下:1.在Maven Project中 Dependencies 出现红色波浪线 2.查询本地仓库:jar包已存在 3.解决方法:3.1.从 ...

  10. keepass口令管理实践

    语言修改 加入插件 插件的学习及应用