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. 利用mycat读写分离搭建wordpress博客网站

    实验环境 以下配置都是建立在mariadb主从没有问题的情况下: .三台主机:在三台机器/etc/hosts添加以下3条主机信息(mycat和wordpress在一台机器上面) mycat:192.1 ...

  2. 对NetBackup 问题进行故障排除的步骤

    错误消息通常是指出哪里出现故障的手段.如果在界面上没有看到错误消息,但仍怀疑有问题,请检查报告和日志. NetBackup提供了各种报告和日志记录工具, 这些工具可提供错误消息,直接为您指出解决方案. ...

  3. POJ 3694Network(Tarjan边双联通分量 + 缩点 + LCA并查集维护)

    [题意]: 有N个结点M条边的图,有Q次操作,每次操作在点x, y之间加一条边,加完E(x, y)后还有几个桥(割边),每次操作会累积,影响下一次操作. [思路]: 先用Tarjan求出一开始总的桥的 ...

  4. 201871010105-曹玉中《面向对象程序设计(java)》第四周学习总结

    201871010105-曹玉中<面向对象程序设计(java)>第四周学习总结 项目 内容 这个作业属于哪个课程 https://www.cnblogs.com/nwnu-daizh/ 这 ...

  5. python基础语法18 类的内置方法(魔法方法),单例模式

    类的内置方法(魔法方法): 凡是在类内部定义,以__开头__结尾的方法,都是类的内置方法,也称之为魔法方法. 类的内置方法,会在某种条件满足下自动触发. 内置方法如下: __new__: 在__ini ...

  6. Educational Codeforces Round 78 (Rated for Div. 2) C. Berry Jam

    链接: https://codeforces.com/contest/1278/problem/C 题意: Karlsson has recently discovered a huge stock ...

  7. zzulioj - 2623: 小H的作业题

    题目链接:http://acm.zzuli.edu.cn/problem.php?id=2623 题目描述        期末考试即将来临,同学们都积极的在图书馆复习.今天小H也来到图书馆复习,小H掏 ...

  8. Codeforces Round #605 (Div. 3) E - Nearest Opposite Parity (超级源点)

  9. contest4 CF1091 div2 ooooxx ooooxx ooooox

    题意 div2E 一个有\(n+1\)个点的无向图, 给出\(n\)个点的度数, 求出每一种可能的\(n+1\)的度数 (题面附带公式 graph realization problem)

  10. 蒟蒻所见之DP

    本文有错是正常的,因为这只是一部成长史,并非教学博文. 会常年更下去. 2019.10.24 DP,核心只是"表格法"而已. DP题真正所考察的,是: 1.对问题的描述.简化以及归 ...