使用 HttpLib 来访问 Web 服务

本文介绍了一款名为HttpLib的库,它极大地简化了在C#中异步访问Web服务的过程。使用该库只需一行代码即可完成网页访问和文件上传操作,相比传统的HttpWebRequest方法减少了大量代码量。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

介绍


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.Name
    string value = property.GetValue(Parameters, null).ToString();
}


来源:http://www.oschina.net/translate/using-httplib-to-consume-web-services?from=20130103
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值