使用HttpClient 调用Web Api
C#4.5 添加了异步调用Web Api 。
如果你的项目是4.5以上版本,可以直接参考官方文档。
http://www.asp.net/web-api/overview/web-api-clients/calling-a-web-api-from-a-net-client
现在项目使用的是C# 4.0 ,需要对HttpClient 进行修改。
当然了你要先添加两个引用 Microsoft.Net.Http和Microsoft.AspNet.WebApi.Client
下面是改造后的HttpClient
public class ResultMessage{public string Code { get; set; }public string Message { get; set; }public string Content { get; set; }}public class HttpClientHelper{public static string RequestUrl = "http://localhost:1282/";/// <summary>/// HttpClient实现Get请求/// </summary>public static ResultMessage Get(string url){using (var client = new HttpClient()){client.BaseAddress = new Uri(RequestUrl);client.DefaultRequestHeaders.Accept.Clear();client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));Task<HttpResponseMessage> response = client.GetAsync(url);var resultMsg = new ResultMessage();if (response.Result.IsSuccessStatusCode){Task<string> content = response.Result.Content.ReadAsStringAsync();string resultjson = content.Result;resultMsg = JsonConvert.DeserializeObject<ResultMessage>(resultjson);Console.WriteLine("{0}\t{1}\t{2}", resultMsg.Code, resultMsg.Message, resultMsg.Content);}else{resultMsg.Code = response.Result.StatusCode.ToString();resultMsg.Message = response.Result.ReasonPhrase;Console.WriteLine("{0} ({1})", (int) response.Result.StatusCode, response.Result.ReasonPhrase);}return resultMsg;}}/// <summary>/// HttpClient实现Post请求/// 执行服务方法/// </summary>public static ResultMessage Post(string code, string name){string url = RequestUrl + "api/Biz/Exec";using (var client = new HttpClient()){client.BaseAddress = new Uri(RequestUrl);client.DefaultRequestHeaders.Accept.Clear();client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));var content = new FormUrlEncodedContent(new Dictionary<string, string>{{"code",code}{"name",name},});var resultMsg = new ResultMessage();Task<HttpResponseMessage> response = client.PostAsync(url, content);//延时处理if (response.Result.IsSuccessStatusCode){Task<string> con = response.Result.Content.ReadAsStringAsync();string resultjson = con.Result;resultMsg = JsonConvert.DeserializeObject<ResultMessage>(resultjson);}else{resultMsg.Code = response.Result.StatusCode.ToString();resultMsg.Message = response.Result.ReasonPhrase;}return resultMsg;}}}
转载于:https://www.cnblogs.com/bigbrid/p/5590768.html
使用HttpClient 调用Web Api相关推荐
- WebApi系列~通过HttpClient来调用Web Api接口
HttpClient是一个被封装好的类,主要用于Http的通讯,它在.net,java,oc中都有被实现,当然,我只会.net,所以,只讲.net中的HttpClient去调用Web Api的方法,基 ...
- 【ASP.NET Web API教程】3.3 通过WPF应用程序调用Web API(C#)
注:本文是[ASP.NET Web API系列教程]的一部分,如果您是第一次看本博客文章,请先看前面的内容. 3.3 Calling a Web API From a WPF Application ...
- android 调用 asp.net web api,从 .NET 客户端调用 Web API (C#)
从 .NET 客户端调用 Web API (C#) 11/24/2017 本文内容 此内容适用于以前版本的 .NET. 新开发应该使用 ASP.NET Core. 有关使用 Core Web API ...
- C# + WPF调用Web Api 自制B站客户端
C# + WPF自制B站客户端 已经开源,地址:Github地址 喜欢的话,请点个Star吧!! 最近无聊尝试调用Web API做个B站的客户端程序练练手,经过两天的摸索有了一些成果.主要的思路有如下 ...
- python 图表_Python入门学习系列——使用Python调用Web API实现图表统计
使用Python调用Web API实现图表统计 Web API:Web应用编程接口,用于URL请求特定信息的程序交互,请求的数据大多以非常易于处理的格式返回,比如JSON或CSV等. 本文将使用Pyt ...
- ASP.NET MVC4中调用WEB API的四个方法
当今的软件开发中,设计软件的服务并将其通过网络对外发布,让各种客户端去使用服务已经是十分普遍的做法.就.NET而言,目前提供了Remoting,WebService和WCF服务,这都能开发出功能十分强 ...
- 利用Fiddler模拟通过Dynamics 365的OAuth 2 Client Credentials认证后调用Web API
微软动态CRM专家罗勇 ,回复337或者20190521可方便获取本文,同时可以在第一间得到我发布的最新博文信息,follow me. 配置Dynamics 365 & PowerApps 支 ...
- java 调用webapi json_java通过url调用web api并接收其返回的json
java通过url调用webapi并接收其返回的json数据,但现在结果总是:{"result":4,"data":{}}(未认证:),帮助文档如下:API使用 ...
- jQuery跨域调用Web API
我曾经发表了一篇关于如何开发Web API的博客,链接地址:http://www.cnblogs.com/guwei4037/p/3603818.html.有朋友说开发是会开发了,但不知道怎么调用啊? ...
最新文章
- 情感分析研究的新视野
- MySQL根据某一个或者多个字段查找重复数据
- java多线程系列:ThreadPoolExecutor源码分析,java基础面试笔试题
- php数组去重复数据的小例子
- 带你彻底明白 Android Studio 打包混淆
- 初学Java必写的小程序。
- 阶段3 1.Mybatis_05.使用Mybatis完成CRUD_9 Mybatis中的返回值深入-解决实体类属性和数据库列名不对应的两种方式...
- java导出地图矢量Shp文件
- XlsxWriter的使用
- Unity使用Animator.CrossFade后,脚本的OnExitState函数还执行吗
- 随机过程(一):泊松过程的详细理解
- 利用Opencv+Qt打开摄像头
- 早稻田大学国际文学馆(村上春树图书馆)正式开馆
- 银河系中一定有生命存在
- 极米RS Pro 2值得买吗?极米科技这款4K投影真实体验怎么样?
- 十分钟带你了解阿里、美团、滴滴、头条等互联网头部大厂面经
- 芯片商洗牌战拉开序幕 指纹识别技术独霸市场
- Themida WinLicense免费下载脱壳使用教程功能介绍大全
- 【阿里聚安全·安全周刊】App通过超声波信号静默追踪用户 | 图片噪点可骗过Google最顶尖的图像识别AI...
- C# 制作(PictureBox)圆形头像框 从数据库中读取头像
热门文章
- 性能测试工具Locust的使用----TaskSet类~~task任务嵌套
- html 手机复制到剪贴板,移动端和pc端的复制到剪贴板功能
- 置为底层_头一次见浴室装修这样设计,浴缸两头砌上置物台,实用又方便
- java pdf转为png_java-使用icepdf实现pdf转换成png
- matlab 仿真钢琴,用Matlab模拟钢琴的声音
- python 安装包列表导出到 txt
- 2018 ACM/ICPC 沈阳站小结
- 【BZOJ3566】概率充电器,树形概率DP
- 15.立体几何——几何为一个简单的立体系统,左右测验,视差的深度_3
- 8.霍夫变换:线条——介绍、参数模型、直线拟合_1