一切福田,不離方寸,從心而覓,感無不通。

C# 中使用System.Net.Http.HttpClient 模拟登录博客园 (GET/POST)

一、 System.Net.Http.HttpClient简介

System.Net.Http 是微软.net4.5中推出的HTTP 应用程序的编程接口, 微软称之为“现代化的 HTTP 编程接口”, 主要提供如下内容:

1. 用户通过 HTTP 使用现代化的 Web Service 的客户端组件;

2. 能够同时在客户端与服务端同时使用的 HTTP 组件(比如处理 HTTP 标头和消息), 为客户端和服务端提供一致的编程模型。

个人看来是抄袭apache http client ,目前网上用的人好像不多,个人认为使用httpclient最大的好处是:不用自己管理cookie,只要负责写好请求即可。

由于网上资料不多,这里借登录博客园网站做个简单的总结其get和post请求的用法。

查看微软的api可以发现其属性方法:http://msdn.microsoft.com/zh-cn/library/system.net.http.httpclient.aspx

由其api可以看出如果想设置请求头只需要在DefaultRequestHeaders里进行设置

创建httpcliet可以直接new HttpClient()

发送请求可以按发送方式分别调用其方法,如get调用GetAsync(Uri),post调用PostAsync(Uri, HttpContent),其它依此类推。。。

二、实例(模拟post登录博客园)

首先,需要说明的是,本实例环境是win7 64位+vs 2013+ .net 4.5框架。

1.使用vs2013新建一个控制台程序,或者窗体程序,如下图所示:

2.必须引入System.Net.Http框架,否则将不能使用httpclient

3.实现代码

代码分析:

首先,从Main函数开始,调用LoginCnblogs方法;

其次,使用GET方法:

再者,使用POST方法:

最后,注意其返回值可以是string,也可以是byte[],和stream的方式,这里看你需要什么吧。

 

4.登录成功后的截图

1).使用浏览器登录后的截图:

2).使用Httpcliet登录后的截图:

 

总结,可以发现C#中HttpClient的用法和Java中非常相似,所以,说其抄袭确实不为过。

 

from:https://www.cnblogs.com/amosli/p/3918538.html