using System.Net;

GET:

 
1
2
3
var request = (HttpWebRequest)WebRequest.Create("http://www.leadnt.com/recepticle.aspx");
var response = (HttpWebResponse)request.GetResponse();
var responseString = new StreamReader(response.GetResponseStream()).ReadToEnd();

POST:

 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
var request = (HttpWebRequest)WebRequest.Create("http://www.leadnt.com/recepticle.aspx");
 
var postData = "thing1=hello";
    postData += "&thing2=world";
var data = Encoding.ASCII.GetBytes(postData);
 
request.Method = "POST";
request.ContentType = "application/x-www-form-urlencoded";
request.ContentLength = data.Length;
 
using (var stream = request.GetRequestStream())
{
    stream.Write(data, 0, data.Length);
}
 
var response = (HttpWebResponse)request.GetResponse();
 
var responseString = new StreamReader(response.GetResponseStream()).ReadToEnd();

第二种:WebClient,也过时了:

 
1
2
using System.Net;
using System.Collections.Specialized;

GET:

 
1
2
3
4
using (var client = new WebClient())
{
    var responseString = client.DownloadString("http://www.leadnt.com/recepticle.aspx");
}

POST:

 
1
2
3
4
5
6
7
8
9
10
using (var client = new WebClient())
{
    var values = new NameValueCollection();
    values["thing1"] = "hello";
    values["thing2"] = "world";
 
    var response = client.UploadValues("http://www.leadnt.com/recepticle.aspx", values);
 
    var responseString = Encoding.Default.GetString(response);
}

第三种:HttpClient 当前主流用法,异步请求,自.NET4.5开始可从Nuget包管理中获取。

 
1
using System.Net.Http;

GET:

 
1
2
3
4
using (var client = new HttpClient())
{
    var responseString = client.GetStringAsync("http://www.mydomain.com/recepticle.aspx");
}

POST:

 
1
2
3
4
5
6
7
8
9
10
11
12
using (var client = new HttpClient())
{
    var values = new List<KeyValuePair<string, string>>();
    values.Add(new KeyValuePair<string, string>("thing1", "hello"));
    values.Add(new KeyValuePair<string, string>("thing2 ", "world"));
 
    var content = new FormUrlEncodedContent(values);
 
    var response = await client.PostAsync("http://www.mydomain.com/recepticle.aspx", content);
 
    var responseString = await response.Content.ReadAsStringAsync();
}

第四种:第三方类库:

RestSharp

REST API请求测试类库,可通过  NuGet 获得。

Flurl.Http

最新的便捷的api测试工具,使用HttpClient实现,可通过 NuGet 安装。

 
1
using Flurl.Http;

GET:

 
1
2
var responseString = await "http://www.mydomain.com/recepticle.aspx"
    .GetStringAsync();

POST:

 
1
2
3
var responseString = await "http://www.mydomain.com/recepticle.aspx"
    .PostUrlEncodedAsync(new { thing1 = "hello", thing2 = "world" })
    .ReceiveString();
 

.NET/C#发起GET和POST请求的几种方法的更多相关文章

  1. php发送post请求的三种方法示例

    本文分享下php发送post请求的三种方法与示例代码,分别使用curl.file_get_content.fsocket来实现post提交数据,大家做个参考. php发送post请求的三种方法,分别使 ...

  2. 【MySQL】锁——查看当前数据库锁请求的三种方法 20

    MySQL提供了查看当前数据库锁请求的三种方法:1. show  full  processlist命令  观察state和info列 2. show engine  innodb status\G ...

  3. php发送get、post请求的6种方法代码示例

    本文主要展示了php发送get.post请求的6种方法的代码示例,分别为使用file_get_contents .fopen.fsockopen.curl来发送GET和POST请求,代码如下: 方法1 ...

  4. PHP允许AJAX跨域请求的两种方法

    * 一. 服务端设置 header 头允许AJAX跨域 ** 代码如下: // 允许 ityangs.net 发起的跨域请求 header("Access-Control-Allow-Ori ...

  5. ASP.NET MVC 实现AJAX跨域请求的两种方法

    通常发送AJAX请求都是在本域内完成的,也就是向本域内的某个URL发送请求,完成部分页面的刷新.但有的时候需要向其它域发送AJAX请求,完成数据的加载,例如Google. 在ASP.NET MVC 框 ...

  6. springMVC源码学习之:springMVC响应请求的几种方法

    spring mvc 支持如下的返回方式:ModelAndView, Model, ModelMap, Map,View, String, void. ModelAndView @RequestMap ...

  7. php发送get、post请求的几种方法

    方法1: 用file_get_contents 以get方式获取内容 <?php $url='http://www.domain.com/'; $html = file_get_contents ...

  8. php发送post请求的三种方法

    引用:http://blog.sjzycxx.cn/post/435/ 1.使用 file_get_contents() /** * 发送post请求 * @param string $url 请求地 ...

  9. 极速响应Excel数据报表请求的一种方法

    摘要 通过缓存和维护Excel Workbook实例,极速响应Excel数据报表请求. 这是一个真实的大数据"云计算"项目中的解决方案,在给定的时间和资源下,只有这种方法是最简单并 ...

随机推荐

  1. Revit 开发将自己的窗口设置为Revit窗口

    在Revit开发中如果使用modeless的对话框,经常容易被Revit窗体覆盖,但是如果将窗体设为Topmost的话,当Revit失去焦点后,它又会遮住其他程序的界面,比如将Revit最小化后,To ...

  2. CSS背景渐变支持transition过渡效果

    background-image 是不支持 CSS3 的transition过渡效果的,而CSS3 gradient 渐变作为背景图片存在的时候, 下面的CSS不会有过渡效果 <div clas ...

  3. Bitvise 使用公私玥免密登陆 服务器

    远程机linux 首先需要把 生成 公私玥,并且把公钥 写到 远程linux 主机的,你要登陆的用户下面 的.ssh 文件里面的authorized_keys 文件里面.这个参考我的另一篇关于linu ...

  4. Jenkins 配置用户权限错误导致无法登录解决方案

    最初配置Jenkins的用户管理权限时,因为不熟悉很容易将用户角色配置错误,导致配置用户后无法登录系统: 登录系统时候提示"Access Denied": 解决办法: 进入Jenk ...

  5. Git-git rebase详解

    git合并代码方式主要有两种方式,分别为:1.merge处理,这是大家比较能理解的方式.2.rebase处理,中文此处翻译为衍合过程. git rebase操作讲解例子: cd /usr/local/ ...

  6. ecstore-自定义app里增加对应的wap的模板

    注意第二个参数空第三个参数是自定义app名称$this->page('wap/member/recmembers.html','','ecstoreapprcomp2p');

  7. c# .net WebRequest 始终报域名无法解析

    更改本机DNS,flushdns也没效果. 最后通过改.config 禁用代理后正常. (或:WebRequest.Proxy=null;)

  8. sql Find_IN_SET 用法

    字段以 1,2,3,4 格式存储的SELECT * from test where FIND_IN_SET('15',btype) GROUP_CONCAT + group_by

  9. 无后缀名伪静态路径在IIS7.0的网站提示 "404 - File or directory not found"

    新配置服务器(windows server 2008,not sp1) 经测试情况如下: ①无后缀名伪静态路径行在IIS7.0的网站提示 ”404 - File or directory not fo ...

  10. Mina 专题

    未完待续>>> 目录: 一)同步.异步.阻塞.非阻塞 二)Java中的NIO 三)Mina 异步请求 四)Mina 同步请求 五)Mina 核心类及处理流程 六)Mina 线程模型 ...