.net HttpClient 回传实体帮助类
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 回传实体帮助类的更多相关文章
- [Mime] MimeEntity--MimeEntity Mime实体帮助类 (转载)
点击下载 MimeEntity.rar 这个类是关于Mime实体的类看下面代码吧 /// <summary> /// 类说明:Assistant /// 编 码 人:苏飞 /// 联系方式 ...
- 利用Xml架构生成实体访问类
由xml生成xsd及实体类 xmldataset工具 使用VS2005工具XSD.exe(SDK/v2.0/Bin/xsd.exe)自动生成实体类: xsd /c /namespace:myCom ...
- abp 修改abp.zero的实体映射类,使生成的表和字段为大写状态
在我们项目中,由于涉及到报表配置管理,可以通过一段sql快捷的配置出一个报表页面.部分sql会与abp框架的一些系统表做关联查询,而abp的映射类没有单独设置表和字段的名称,默认用类名和属性名,区分大 ...
- 实体类与实体DTO类之间的转换
实体类与实体DTO类之间的转换 实体类与实体DTO类之间的转换 1.通过使用第三方序列化反序列化工具Newtonsoft.Json 2.通过反射实现 3.通过表达式目录树加字典缓存实现 4. 通过表达 ...
- Intellij IDEA集成mybatis-generator插件自动生成数据库实体操作类
Intellij IDEA集成mybatis-generator插件自动生成数据库实体操作类 转载至:https://blog.csdn.net/fishinhouse/article/details ...
- C# HttpClient请求Webapi帮助类
引用 Newtonsoft.Json // Post请求 public string PostResponse(string url,string postData,out string status ...
- c#遍历并判断实体或类的成员属性
c#的Attribute有些类似java中的annotation,可以方便地在类成员中做修饰/限制作用. Demo: class ss { public stat BsonDocument Itera ...
- Hibernate 实体映射类的状态值自动转换
经常会遇到有些字段在数据库只是一个 byte 值,但是取出数据后需要转换为真实的状态名称. 举个栗子:一个图书管理系统,书籍有一个属性 stat(借出状态),在库中只需要保存一个 0/1/2/3/4 ...
- JSON字符串转C#实体Class类
在项目开发过程中,经常需要和不同部门或者不同的组员一起协同工作,但对方写的json返回的结果集,我们需要用,那么如何来生成对应的类代码和实体对象呢?于是参考了网上的做法,做一个简单的字符串转实体类的功 ...
随机推荐
- 团队第五次作业:alpha2成绩汇总
一.作业题目 团队第五次作业:alpha2发布 二.作业评分标准 博客评分规则(总分100)博客要求 给出开头和团队成员列表(10') 给出发布地址以及安装手册(20') 给出测试报告(40') 给出 ...
- linux socket编程系统调用栈
目录 一.网络协议参考模型简介 二.SOCKET概述 三.SOCKET基本数据结构 1.TCP通信编程 2.服务器端实例代码 3.客户端实例代码 4.头文件socketwrapper.h 5.程序实现 ...
- PacMan 01——地图的搭建
版权申明: 本文原创首发于以下网站: 博客园『优梦创客』的空间:https://www.cnblogs.com/raymondking123 优梦创客的官方博客:https://91make.top ...
- K8S或docker的旁路容器注入排查
使用这种排查技术的场景在于: 1,真正线上的POD,里面的排查工具很少.wget,curl,vi,telnet,ifconfig这些命令可能都没有. 2,排查的POD,什么工具都有,但与POD隔离,无 ...
- django使用pycharm目录打开不正确导致的问题
1.在目录D:\software\pycharmpython\djangoProject下新建helloworld的项目:django-admin startproject helloworld 2. ...
- java.time.format.DateTimeParseException: Text '2019-10-11 12:30:30' could not be parsed at index 10
java.time.format.DateTimeParseException: Text '2019-10-11 12:30:30' could not be parsed at index 10 ...
- 201871010128-杨丽霞《面向对象程序设计(java)》第二周学习总结
201871010128-杨丽霞<面向对象程序设计(java)>第二周学习总结 项目 内容 这个作业属于哪个课程 <https://www.cnblogs.com/nwnu-daiz ...
- pypi 打包分发
打包Python项目 本教程将指导您如何打包一个简单的Python项目.它将向您展示如何添加必要的文件和结构来创建包,如何构建包以及如何将其上载到Python包索引. 一个简单的项目 本教程使用一个名 ...
- ThinkPHP获取当前页URL添加canonical
最近ytkah正在开发一个thinkPHP项目,数据量有点大,很多页面都没被索引,需要对模板进行修改,首先需要改的是页面唯一性,因为产品页加入购物车等行为会带有一些参数,如果不加入canonical标 ...
- Java XML文档
概念 XML(EXtensible Markup Language),可扩展标记语言.可扩展就是<>内的东西可以自己定义,可以随便写.标记语言就是加了<>符号的 .HTML是超 ...