介绍

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

  1. 在ASP.NET AJAX 1.0框架中访问Web服务

    一. 简介     如今,微软最新推出的AJAX框架为ASP.NET AJAX 1.0(下载地址为[url]http://ajax.asp.net/downloads/default.aspx[/ur ...

  2. 尝试从远程计算机访问Web服务不显示调用按钮

    当尝试从远程计算机访问 Web 服务时,不会显示"调用"按钮.并且会收到以下错误信息: The test form is only available for requests f ...

  3. JQuery中ajax方法访问web服务

      1 $.ajax({     2    3 02    type: "POST",     4    5 03    //注明 返回Json     6    7 04     ...

  4. 访问Web服务器时 使用的协议是,使用SOAP协议访问Web服务

    SOAP是简单对象访问协议,它可看成是HTTP与XML的结合,其中XML部分是作为HTTP报文的实体主体部分. SOAP:简单对象访问协议,是一种轻量的.简单的.基于 XML 的协议,它被设计成在 W ...

  5. iptables+ipset自动封闭和解封频繁访问web服务的恶意IP

    iptables直接针对ip进行封禁,在ip数量不大的时候是没什么问题的,但当有大量ip的时候性能会严重下降,iptables是O(N)的性能.而ipset就像一个集合,把需要封闭的ip地址写入这个集 ...

  6. 《深入Python》-11. HTTP Web 服务

    <深入Python>-11. HTTP Web 服务 11. HTTP Web 服务 出处: http://www.woodpecker.org.cn/diveintopython/htt ...

  7. 通过双向证书认证使用 gSOAP 访问 web services

    概述 本文通过一系列的实验步骤描述,向您展示如何使用 gSOAP 编写的客户端,通过双向证书认证,访问由 tomcat7 和 Axis2 搭建的 web 服务.全文循序渐进,分为几个阶段逐步展开,每个 ...

  8. WSE3.0构建Web服务安全(3):WSE3.0策略配置、证书、签名、与实例开发

    继WSE3.0构建Web服务安全(1):WSE3.0安全机制与实例开发和WSE3.0构建Web服务安全(2):非对称加密.公钥.密钥.证书.签名的区别和联系以及X.509 证书的获得和管理之后,今天我 ...

  9. RHEL 5服务篇—使用Apache搭建Web服务(一)

    安装Apache服务以及了解相关的配置文件 在当今的互联网中常用的搭建web服务器的方法有两种,一种是IIS.一种是Apache.大家都知道IIS是微软的产品,只支持在windows系统上使用.那么我 ...

最新文章

  1. Spark(六):SparkSQLAndDataFrames对结构化数据集与非结构化数据的处理
  2. Java 动态语言
  3. Android中项目中各个文件夹的含义和用途详解
  4. 刘强东:第四次零售革命意义将超互联网
  5. USING HAVING
  6. 用3年时间破解学界200多年难题,年仅21岁的天才竟因谈了一场恋爱挂掉了.........
  7. React开发(189):ant design textarea允许清除allowClear
  8. org.hibernate.LazyInitializationException: could not initialize proxy - no Session
  9. switch语句训练
  10. python和c++哪个好-Scratch和Python与C++选哪个合适
  11. educoder第六章 关联挖掘 实验二:FP-growth
  12. /proc/meminfo文件内容详解
  13. (转)国外 RPA 企业盘点:谁是领导者,谁是挑战者
  14. c#用友U8API开发之环境搭建(1)
  15. 34款管理系统、ERP、CRM、OA等(冠唐\金蝶等)
  16. css中背景颜色的代码,css背景代码是什么,css怎么控制背景颜色
  17. 陶哲轩教你学数学 第1章 解题策略 读书笔记
  18. 谷歌工程师深度技术分析“为什么ios比android流畅
  19. 使用HBuilder mui将图片保存到手机相册(移动端将图片、文件保存至手机相册)
  20. maven出现The server encountered an internal error () that prevented it from fulfilling this request.

热门文章

  1. 大数据在医疗保健中的真正愿景
  2. Javascript中的async await
  3. js立即执行函数: (function ( ){...})( ) 与 (function ( ){...}( )) 有区别?
  4. Android Fragment应用实战
  5. 局域网内多台linux服务器时间同步的一种解决方案
  6. 转-SQL 2005修改系统表
  7. mysql8允许外网访问(转载+整理)
  8. kafka报错与调试技巧
  9. opencv书籍调研
  10. sklearn中knn的各种用法总结