【.Net】调用Web API的几种方式

引言

记录一下调用Web API的几种方式,以调用百度API为例.

HttpWebRequest

HttpWebRequest位于System.Net命名空间,是常用的调用Web API类库.

            string strURL = "http://apis.baidu.com/apistore/weatherservice/citylist?cityname=" + HttpUtility.UrlEncode("北京");
            HttpWebRequest request = (HttpWebRequest)WebRequest.Create(strURL);
            request.Method = "GET";
            request.Headers.Add("apikey", "XXXXXXXXXXXXXXXXXXXXXXXXXX");
            HttpWebResponse response = (HttpWebResponse)request.GetResponse();
            Stream s = response.GetResponseStream();
            StreamReader Reader = new StreamReader(s);
            string result = Reader.ReadToEnd();

参考链接
    
HttpWebRequest 类

在C#用HttpWebRequest中发送GET/HTTP/HTTPS请求

httpwebrequest详解

HttpClient 

HttpClient 是位于System.Net.Http.HttpClient命名空间下,里面的调用都是异步的,用法也很简单.

            string strURL = "http://apis.baidu.com/apistore/weatherservice/citylist?cityname=" + HttpUtility.UrlEncode("北京");
            HttpClient client = new HttpClient();
            client.DefaultRequestHeaders.Add("apikey", "xxxxxxxxxxxxxxx");
            HttpResponseMessage response = await client.PostAsync(strURL, null);
            string reslut = await response.Content.ReadAsStringAsync();

参考链接

C#中HttpClient使用注意:预热与长连接

.Net 4.5中的HttpClient试用

RestSharp

RestSharp是GitHub上的一个开源类库,用法简单方便,值得推荐.

            RestClient restClient = new RestClient("http://apis.baidu.com/apistore/weatherservice/citylist");
            RestRequest restRequest = new RestRequest(Method.GET);
            restRequest.AddQueryParameter("cityname", "北京");
            restRequest.AddHeader("apikey", "xxxxxxxxxxxxxxx");
            string reslut = restClient.Execute(restRequest).Content;

参考链接

RestSharp

小结

上文简单介绍了3个方式的用法,后面两种深度封装,使用起来很方便.性能上,我简单测试了一下,循环调用100次,耗费都是7秒多.

    

时间: 2024-10-10 16:08:47

【.Net】调用Web API的几种方式的相关文章

ASP.NET Web Api 实践系列(二)Get/Post方式调用Web Api

本文给出Get/Post方式访问Web Api的帮助方法,对于Put/Delete方式的调用跟Post调用类似. 一.Web Api调用帮助类 下面给出Web Api调用帮助类的代码: 1 using System; 2 using System.Collections.Generic; 3 using System.Net.Http; 4 using System.Net.Http.Headers; 5 using System.Text; 6 using System.Web; 7 8 na

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

HttpClient是一个被封装好的类,主要用于Http的通讯,它在.net,java,oc中都有被实现,当然,我只会.net,所以,只讲.net中的HttpClient去调用Web Api的方法,基于api项目的特殊性,它需要有一个完全安全的环境,所以,你的api控制器看起来有点特别,只有5个方法,而且都是标准的http方法,我觉得这种设计很不错,很清晰,而且为了实现安全性,它不支持使用传统的表单数据,取而代之的是FromBody参数,它指拿HttpRequestMessage里参数,而不是所

Struts2中访问web元素的四种方式

Struts2中访问web元素的四种方式如下: 通过ActionContext来访问Map类型的request.session.application对象. 通过实现RequestAware.SessionAware.ApplicationAware接口来访问Map类型的request.session.application对象(IoC方式). 通过ServletActionContext来访问Servlet API类型的HttpServletRequest. HttpSession. Serv

php调用c/c++的一种方式

php调用c/c++的一种方式 php调用c/c++有很多方式,最常用的是通过tcp或者http去调用,通过发送请求去调用c/c++编写的cgi/fastcgi来实现,另外php还有一种直接执行外部应用程序的方式,这种方式会影响到系统安全,容易被攻击者利用,所以使用的时候要谨慎处理好用户输入 php执行外部二进制命令的函数有好几个,比如exec和passthru,并且passthru函数能执行命令并且可以返回外部命令的输出,所以本次就使用passthru来实现,php调用c/c++函数的目的就是

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

http://tech.it168.com/a2012/0606/1357/000001357231_all.shtml [IT168技术]当今的软件开发中,设计软件的服务并将其通过网络对外发布,让各种客户端去使用服务已经是十分普遍的做法.就.NET而言,目前提供了Remoting,WebService和WCF服务,这都能开发出功能十分强大的服务.然而,越来越多的互联网应用,希望将服务只是通过HTTP发布出去,而不是使用复杂的SOAP协议.为了解决这个问题,ASP.NET WebAPI就出现了.

tomcat发布web项目的三种方式

tomcat发布web项目的三种方式 方式一: 配置tomcat 安装目录下的conf/server.xml <Host name="loaclhost">标签里面添加 <Context path="/aa" docBase="C:\AA\BB" /> 即/aa这个虚拟路径映射到了C:\AA\BB目录下,修改完servler.xml需要重启tomcat服务器 方式二: 在conf目录下创建Catalina目录,在此目录下新

Asp.Net Web API 2第三课——.NET客户端调用Web API

Asp.Net Web API 导航 Asp.Net Web API第一课——入门http://www.cnblogs.com/aehyok/p/3432158.html Asp.Net Web API第二课——CRUD操作http://www.cnblogs.com/aehyok/p/3434578.html 前言 本教程演示从一个控制台应用程序,使用HttpClient调用Web API.我们也将使用上一个教程中建立的Web API.你可以直接在http://www.cnblogs.com/

Struts2中获取servlet API的几种方式

struts2是一个全新的MVC框架,如今被广大的企业和开发者所使用,它的功能非常强大.这给我们在使用servlet 纯java代码写项目的时候带来了福音.但是一般来说,我们的项目不到一定规模并不需要框架的.通常功能模块和系统架构复杂的时候会少不了框架的,如果没有框架,我们写的项目和代码会复杂很多,而且扩展性也会大大降低,代码审查效率也会降低.如下代码供大家参考,主要是说明在使用struts2的时候如何获取servlet API,大家可以试着对比一下不用struts2的时候的所写的servelt

获取web路径的几种方式

1.string str1 = Request.ApplicationPath.ToString();           返回路径为:\HolterClientWeb 2.HttpServerUtility.MapPath 方法 解释:返回对应于 Web 服务器上指定的虚拟路径的物理文件路径. string path=Server.MapPath(Request.ApplicationPath + "/UpLoad/ReportFile"); 调试后: string str3= Se