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. docker 常见系统镜像

    镜像选择 alpine:3.7 (首选) debian:stretch-slim (次选) 常见系统镜像大小对比 REPOSITORY TAG IMAGE ID CREATED SIZE fedora ...

  2. laravel 打印完整sql语句

    laravel5 用DB自带的getQueryLog方法直接打印: DB::connection()->enableQueryLog(); // 开启QueryLog \App\User::fi ...

  3. DevOps需要的工具

    DevOps需要的工具: 代码管理(SCM):GitHub.GitLab.BitBucket.SubVersion 构建工具:Ant.Gradle.maven 自动部署:Capistrano.Code ...

  4. centos7 tomcat自启动

    第一步: vim /lib/systemd/system/tomcat.service [Unit] Description=tomcat After=network.target [Service] ...

  5. ML平台_微博深度学习平台架构和实践

    ( 转载至: http://www.36dsj.com/archives/98977)  随着人工神经网络算法的成熟.GPU计算能力的提升,深度学习在众多领域都取得了重大突破.本文介绍了微博引入深度学 ...

  6. jQuery实现商品详情 详细参数页面切换

    利用index实现: <!DOCTYPE html> <html lang="en"> <head> <meta charset=&quo ...

  7. GetClass与RegisterClass的应用一例

    利用GetClass与RegisterClass可以实现根据字符串来实例化具体的子类,这对于某些需要动态配置程序的场合是很有用的.其他的应用如子窗体切换,算法替换等都能得到应用. unit Examp ...

  8. xe5 android 手机上使用sqlite [转]

    在android手机上怎样使用sqlite数据库,这里用Navigator实现 增删改查. 1.新建firemonkey mobile application 2.选择blank applicatio ...

  9. ubantu 重启mysql

    如何启动/停止/重启MySQL一. 启动方式 1.使用 service 启动:service mysql start 2.使用 mysqld 脚本启动:/etc/inint.d/mysql start ...

  10. @@identity与scope_identity()函数的区别

    @@IDENTITY 和SCOPE_IDENTITY 返回在当前会话中的任何表内所生成的最后一个标识值. SCOPE_IDENTITY 只返回插入到当前作用域中的值: @@IDENTITY 不受限于特 ...