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相关推荐

  1. WebApi系列~通过HttpClient来调用Web Api接口

    HttpClient是一个被封装好的类,主要用于Http的通讯,它在.net,java,oc中都有被实现,当然,我只会.net,所以,只讲.net中的HttpClient去调用Web Api的方法,基 ...

  2. 【ASP.NET Web API教程】3.3 通过WPF应用程序调用Web API(C#)

    注:本文是[ASP.NET Web API系列教程]的一部分,如果您是第一次看本博客文章,请先看前面的内容. 3.3 Calling a Web API From a WPF Application ...

  3. android 调用 asp.net web api,从 .NET 客户端调用 Web API (C#)

    从 .NET 客户端调用 Web API (C#) 11/24/2017 本文内容 此内容适用于以前版本的 .NET. 新开发应该使用 ASP.NET Core. 有关使用 Core Web API ...

  4. C# + WPF调用Web Api 自制B站客户端

    C# + WPF自制B站客户端 已经开源,地址:Github地址 喜欢的话,请点个Star吧!! 最近无聊尝试调用Web API做个B站的客户端程序练练手,经过两天的摸索有了一些成果.主要的思路有如下 ...

  5. python 图表_Python入门学习系列——使用Python调用Web API实现图表统计

    使用Python调用Web API实现图表统计 Web API:Web应用编程接口,用于URL请求特定信息的程序交互,请求的数据大多以非常易于处理的格式返回,比如JSON或CSV等. 本文将使用Pyt ...

  6. ASP.NET MVC4中调用WEB API的四个方法

    当今的软件开发中,设计软件的服务并将其通过网络对外发布,让各种客户端去使用服务已经是十分普遍的做法.就.NET而言,目前提供了Remoting,WebService和WCF服务,这都能开发出功能十分强 ...

  7. 利用Fiddler模拟通过Dynamics 365的OAuth 2 Client Credentials认证后调用Web API

    微软动态CRM专家罗勇 ,回复337或者20190521可方便获取本文,同时可以在第一间得到我发布的最新博文信息,follow me. 配置Dynamics 365 & PowerApps 支 ...

  8. java 调用webapi json_java通过url调用web api并接收其返回的json

    java通过url调用webapi并接收其返回的json数据,但现在结果总是:{"result":4,"data":{}}(未认证:),帮助文档如下:API使用 ...

  9. jQuery跨域调用Web API

    我曾经发表了一篇关于如何开发Web API的博客,链接地址:http://www.cnblogs.com/guwei4037/p/3603818.html.有朋友说开发是会开发了,但不知道怎么调用啊? ...

最新文章

  1. 情感分析研究的新视野
  2. MySQL根据某一个或者多个字段查找重复数据
  3. java多线程系列:ThreadPoolExecutor源码分析,java基础面试笔试题
  4. php数组去重复数据的小例子
  5. 带你彻底明白 Android Studio 打包混淆
  6. 初学Java必写的小程序。
  7. 阶段3 1.Mybatis_05.使用Mybatis完成CRUD_9 Mybatis中的返回值深入-解决实体类属性和数据库列名不对应的两种方式...
  8. java导出地图矢量Shp文件
  9. XlsxWriter的使用
  10. Unity使用Animator.CrossFade后,脚本的OnExitState函数还执行吗
  11. 随机过程(一):泊松过程的详细理解
  12. 利用Opencv+Qt打开摄像头
  13. 早稻田大学国际文学馆(村上春树图书馆)正式开馆
  14. 银河系中一定有生命存在
  15. 极米RS Pro 2值得买吗?极米科技这款4K投影真实体验怎么样?
  16. 十分钟带你了解阿里、美团、滴滴、头条等互联网头部大厂面经
  17. 芯片商洗牌战拉开序幕 指纹识别技术独霸市场
  18. Themida WinLicense免费下载脱壳使用教程功能介绍大全
  19. 【阿里聚安全·安全周刊】App通过超声波信号静默追踪用户 | 图片噪点可骗过Google最顶尖的图像识别AI...
  20. C# 制作(PictureBox)圆形头像框 从数据库中读取头像

热门文章

  1. 性能测试工具Locust的使用----TaskSet类~~task任务嵌套
  2. html 手机复制到剪贴板,移动端和pc端的复制到剪贴板功能
  3. 置为底层_头一次见浴室装修这样设计,浴缸两头砌上置物台,实用又方便
  4. java pdf转为png_java-使用icepdf实现pdf转换成png
  5. matlab 仿真钢琴,用Matlab模拟钢琴的声音
  6. python 安装包列表导出到 txt
  7. 2018 ACM/ICPC 沈阳站小结
  8. 【BZOJ3566】概率充电器,树形概率DP
  9. 15.立体几何——几何为一个简单的立体系统,左右测验,视差的深度_3
  10. 8.霍夫变换:线条——介绍、参数模型、直线拟合_1