使用 HttpLib 来访问 Web 服务
介绍
C# 为开发者提供很多便利方法用来访问各种 Web 服务,但是编写异步的访问方式却是有点复杂。Windows 通讯框架是一个客户端/服务器通讯非常棒的工具。我精彩发现我自己必须写很多代码来使用已有的 API。微软提供的这些 API 对一些基本的使用来说都是过于复杂。而 HttpLib 大大的简化了在 C# 中异步的访问 Web 服务的编程。使用该库仅需1行代码就可以访问网页和上传文件到 Web 服务器,如果你是使用 HttpWebRequest 来完成相同功能则需 30 行代码。
HttpLib 可从 http://www.oschina.net/p/httplib 网站上下载。
背景
用户只需要对 GET 和 POST 熟悉就可以了,其他的扩展知识有则更好,没有也没关系。
使用代码
GET 网页
该异步的方法异步的请求一个网页,并将结果传递给一个 Lambda 表达式:
Request.Get("http://www.oschina.net/", result=> {Console.Write(result); });
提交数据到 Web 服务
使用相同的方式可以将数据提交给 Web 服务,可传入一个匿名对象用来表示请求的对象。
Request.Post("http://testing.local/post.php", new {name="James",username="Redslide"}, result=> {Console.Write(result); });
上传文件到服务器
HttpLib 也支持 Multipart/form-encoded 文件上传方法。FileStreams 可复制到 Web 请求。你可以在 Sliverlight 应用中直接通过摄像头获取 ImageStream 来上传数据:
Request.Upload("http://testing.local/post.php", new {name = "value"}, new [] {new NamedFileStream("file", "photo.jpg", "image/jpeg", new FileStream(@"C:\photo.jpg",FileMode.Open))}, result=> {Console.Write(result); });
兴趣点
匿名对象序列化
匿名对象可通过反射来序列化,对象所有的属性列表可通过 GetProperties() 来获取,这个方法使得序列化器迭代所有请求的值:
foreach (var property in Parameters.GetType().GetProperties()) {string name = property.Namestring value = property.GetValue(Parameters, null).ToString(); }
使用 HttpLib 来访问 Web 服务相关推荐
- 在ASP.NET AJAX 1.0框架中访问Web服务
一. 简介 如今,微软最新推出的AJAX框架为ASP.NET AJAX 1.0(下载地址为[url]http://ajax.asp.net/downloads/default.aspx[/ur ...
- 尝试从远程计算机访问Web服务不显示调用按钮
当尝试从远程计算机访问 Web 服务时,不会显示"调用"按钮.并且会收到以下错误信息: The test form is only available for requests f ...
- JQuery中ajax方法访问web服务
1 $.ajax({ 2 3 02 type: "POST", 4 5 03 //注明 返回Json 6 7 04 ...
- 访问Web服务器时 使用的协议是,使用SOAP协议访问Web服务
SOAP是简单对象访问协议,它可看成是HTTP与XML的结合,其中XML部分是作为HTTP报文的实体主体部分. SOAP:简单对象访问协议,是一种轻量的.简单的.基于 XML 的协议,它被设计成在 W ...
- iptables+ipset自动封闭和解封频繁访问web服务的恶意IP
iptables直接针对ip进行封禁,在ip数量不大的时候是没什么问题的,但当有大量ip的时候性能会严重下降,iptables是O(N)的性能.而ipset就像一个集合,把需要封闭的ip地址写入这个集 ...
- 《深入Python》-11. HTTP Web 服务
<深入Python>-11. HTTP Web 服务 11. HTTP Web 服务 出处: http://www.woodpecker.org.cn/diveintopython/htt ...
- 通过双向证书认证使用 gSOAP 访问 web services
概述 本文通过一系列的实验步骤描述,向您展示如何使用 gSOAP 编写的客户端,通过双向证书认证,访问由 tomcat7 和 Axis2 搭建的 web 服务.全文循序渐进,分为几个阶段逐步展开,每个 ...
- WSE3.0构建Web服务安全(3):WSE3.0策略配置、证书、签名、与实例开发
继WSE3.0构建Web服务安全(1):WSE3.0安全机制与实例开发和WSE3.0构建Web服务安全(2):非对称加密.公钥.密钥.证书.签名的区别和联系以及X.509 证书的获得和管理之后,今天我 ...
- RHEL 5服务篇—使用Apache搭建Web服务(一)
安装Apache服务以及了解相关的配置文件 在当今的互联网中常用的搭建web服务器的方法有两种,一种是IIS.一种是Apache.大家都知道IIS是微软的产品,只支持在windows系统上使用.那么我 ...
最新文章
- Spark(六):SparkSQLAndDataFrames对结构化数据集与非结构化数据的处理
- Java 动态语言
- Android中项目中各个文件夹的含义和用途详解
- 刘强东:第四次零售革命意义将超互联网
- USING HAVING
- 用3年时间破解学界200多年难题,年仅21岁的天才竟因谈了一场恋爱挂掉了.........
- React开发(189):ant design textarea允许清除allowClear
- org.hibernate.LazyInitializationException: could not initialize proxy - no Session
- switch语句训练
- python和c++哪个好-Scratch和Python与C++选哪个合适
- educoder第六章 关联挖掘 实验二:FP-growth
- /proc/meminfo文件内容详解
- (转)国外 RPA 企业盘点:谁是领导者,谁是挑战者
- c#用友U8API开发之环境搭建(1)
- 34款管理系统、ERP、CRM、OA等(冠唐\金蝶等)
- css中背景颜色的代码,css背景代码是什么,css怎么控制背景颜色
- 陶哲轩教你学数学 第1章 解题策略 读书笔记
- 谷歌工程师深度技术分析“为什么ios比android流畅
- 使用HBuilder mui将图片保存到手机相册(移动端将图片、文件保存至手机相册)
- maven出现The server encountered an internal error () that prevented it from fulfilling this request.
热门文章
- 大数据在医疗保健中的真正愿景
- Javascript中的async await
- js立即执行函数: (function ( ){...})( ) 与 (function ( ){...}( )) 有区别?
- Android Fragment应用实战
- 局域网内多台linux服务器时间同步的一种解决方案
- 转-SQL 2005修改系统表
- mysql8允许外网访问(转载+整理)
- kafka报错与调试技巧
- opencv书籍调研
- sklearn中knn的各种用法总结