文档章节

c# 【MVC】WebApi通过HttpClient来调用Web Api接口

深圳大道
 深圳大道
发布于 2016/12/29 15:35
字数 376
阅读 6
收藏 0
/// <summary>
/// HttpClient实现Post请求(异步)
/// </summary>
static async void dooPost()
{
	string url = "http://localhost:52824/api/register";
	 //设置HttpClientHandler的AutomaticDecompression
	var handler = new HttpClientHandler() { AutomaticDecompression = DecompressionMethods.GZip };
	//创建HttpClient(注意传入HttpClientHandler)
	using (var http = new HttpClient(handler))
	{
		//使用FormUrlEncodedContent做HttpContent
		var content = new FormUrlEncodedContent(new Dictionary<string, string>()       
		{    {"Id","6"},
			 {"Name","添加zzl"},
			 {"Info", "添加动作"}//键名必须为空
		 });

		//await异步等待回应

		var response = await http.PostAsync(url, content);
		//确保HTTP成功状态值
		response.EnsureSuccessStatusCode();
		//await异步读取最后的JSON(注意此时gzip已经被自动解压缩了,因为上面的AutomaticDecompression = DecompressionMethods.GZip)
		Console.WriteLine(await response.Content.ReadAsStringAsync());
	}

}
/// <summary>
/// HttpClient实现Get请求(异步)
/// </summary>
static async void dooGet()
{
	string url = "http://localhost:52824/api/register?id=1";
	//创建HttpClient(注意传入HttpClientHandler)
	var handler = new HttpClientHandler() { AutomaticDecompression = DecompressionMethods.GZip };

	using (var http = new HttpClient(handler))
	{
		//await异步等待回应
		var response = await http.GetAsync(url);
		//确保HTTP成功状态值
		response.EnsureSuccessStatusCode();

		//await异步读取最后的JSON(注意此时gzip已经被自动解压缩了,因为上面的AutomaticDecompression = DecompressionMethods.GZip)
		Console.WriteLine(await response.Content.ReadAsStringAsync());
	}
}
/// <summary>
/// HttpClient实现Put请求(异步)
/// </summary>
static async void dooPut()
{
	var userId = 1;
	string url = "http://localhost:52824/api/register?userid=" + userId;

	//设置HttpClientHandler的AutomaticDecompression
	var handler = new HttpClientHandler() { AutomaticDecompression = DecompressionMethods.GZip };
	//创建HttpClient(注意传入HttpClientHandler)
	using (var http = new HttpClient(handler))
	{
		//使用FormUrlEncodedContent做HttpContent
		var content = new FormUrlEncodedContent(new Dictionary<string, string>()       
		{
		   {"Name","修改zzl"},
		   {"Info", "Put修改动作"}//键名必须为空
		});

		//await异步等待回应

		var response = await http.PutAsync(url, content);
		//确保HTTP成功状态值
		response.EnsureSuccessStatusCode();
		//await异步读取最后的JSON(注意此时gzip已经被自动解压缩了,因为上面的AutomaticDecompression = DecompressionMethods.GZip)
		Console.WriteLine(await response.Content.ReadAsStringAsync());
	}
}

本文转载自:http://blog.csdn.net/smartsmile2012/article/details/51613596

深圳大道
粉丝 3
博文 877
码字总数 0
作品 0
深圳
架构师
私信 提问
C#工具:利用HttpClient调用WebApi

可以利用HttpClient来进行Web Api的调用。由于WebA Api的调用本质上就是一次普通的发送请求与接收响应的过程, 所有HttpClient其实可以作为一般意义上发送HTTP请求的工具。 using System;usi...

刘元蛟
03/29
0
0
ASP.NET Core 2.1 中的 HttpClientFactory (Part 2) 定义命名化和类型化的客户端

原文:https://www.stevejgordon.co.uk/httpclientfactory-named-typed-clients-aspnetcore 发表于:2018年1月 上一篇文章《HttpClientFactory简介》我解释了创建该功能的原因。我们知道了它...

lookerblue
07/02
0
0
使用 xUnit 编写 ASP.NET Core WebAPI单元测试

本文使用xUnit对ASP.NET Core WebAPI做单元测试,使用HttpClient的同步和异步请求,下面详细介绍xUnit的使用过程: 一、创建示例项目 模板为我们自动创建了一个ValuesController控制器,保留...

至情相遇
04/05
0
0
一个c#的与web服务器交互的HttpClient类

.Net类库里提供了HttpWebRequest等类,方便我们编程与Web服务器进行交互. 但是实际使用中我们经常会遇到以下需求, 基础类里没有直接提供相应的功能 (WebClient类包含这些功能,只是用起来稍微麻...

鉴客
2011/12/16
3.5K
1
Android:HttpClient研究

HttpClient4 用法 由HttpClient3 升级到 HttpClient_4 必看 摘要:HttpClient程序包是一个实现了 HTTP 协议的客户端编程工具包,要想熟练的掌握它,必须熟悉HTTP协议。一个最简单的调用如下:...

boonya
2015/03/27
141
2

没有更多内容

加载失败,请刷新页面

加载更多

db.properties

jdbc.driver=com.mysql.cj.jdbc.Driverjdbc.url=jdbc:mysql://localhost:3306/mybatis?serverTimezone=GMT%2B8&characterEncoding=utf8&useSSL=falsejdbc.username=rootjdbc.pas......

行者终成事
13分钟前
3
0
从 Storm 到 Flink,汽车之家基于 Flink 的实时 SQL 平台设计思路与实践

在 2019 年之前,之家的大部分实时业务都是运行在 Storm 之上的。Storm 作为早期主流的实时计算引擎,凭借简单的 Spout 和 Bolt 编程模型以及集群本身的稳定性,俘获了大批用户。下图是实时计...

阿里云官方博客
14分钟前
4
0
网络安全-Day04

2.1.1 什么是SQL注入 2.1.2 注入分类 2.1.3 MySQL手工注入 2.1.4 sqlmap使用 2.1.5 总结 什么是SQL注入 SQL注入漏洞原理 什么是SQL 结构化查询语言(Structured Query Language),是一种特殊目...

Jerry1101
14分钟前
3
0
docker容器内安装yum,vim等命令,以及配置ls指令

使用国内镜像 mv /etc/apt/sources.list /etc/apt/sources.list.bakecho "deb http://mirrors.163.com/debian/ jessie main non-free contrib" >> /etc/apt/sources.listecho "deb http://......

长恭
14分钟前
3
0
超详细的MySQL8.0.17版本安装教程

下载MySQL MySQL的官网地址:https://www.mysql.com/。 如下图所示: 然后点击DOWNLOADS ==> Community,选择MySQL Community Server。如图所示: 滑到页面的最下面,找到Recommended Downl...

彩色泡泡糖
18分钟前
3
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部