HttpClient 调用WebAPI时—传参的三种方式(ASP.NET MVC&CORE均适用)
2023-09-14 09:14:16 时间
代码里有注释:
方法一,传json参数
方法二,传表单参数
方法三,传字节流
public void Post()
{
//方法一,传json参数
var d = new {
username = " ",
password = " ",
grant_type = "password",
appcode = " ",
companyid = " ",
version = "1.0",
};
var data = JsonConvert.SerializeObject(d);
HttpContent httpContent = new StringContent(data);
httpContent.Headers.ContentType = new MediaTypeHeaderValue("application/json");
using (HttpClient httpClient = new HttpClient())
{
string responseJson = httpClient.PostAsync("http://192.168.8.178:1646/token", httpContent)
.Result.Content.ReadAsStringAsync().Result;
}
//方法二,传表单参数
FormUrlEncodedContent formContent = new FormUrlEncodedContent(new Dictionary<string, string>()
{
{"username"," " },
{"password"," " },
{"grant_type","password" },
{"appcode"," " },
{"companyid"," " },
{"version","1.0" },
});
using (HttpClient httpClient = new HttpClient())
{
httpClient.DefaultRequestHeaders.Add("User-Agent", @"Mozilla/5.0 (compatible; Baiduspider/2.0; +http://www.baidu.com/search/spider.html)");
httpClient.DefaultRequestHeaders.Add("Accept", @"text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8");
HttpResponseMessage response = httpClient.PostAsync("http://192.168.8.178:1646/token", formContent).Result;
if (response.IsSuccessStatusCode)
{
string result = response.Content.ReadAsStringAsync().Result;
}
}
///方法三,传字节流
using (HttpClient http = new HttpClient())
{
http.DefaultRequestHeaders.Add("User-Agent", @"Mozilla/5.0 (compatible; Baiduspider/2.0; +http://www.baidu.com/search/spider.html)");
http.DefaultRequestHeaders.Add("Accept", @"text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8");
HttpResponseMessage message = null;
string xx = @"{ ""username"":"" "",""password"":"" "",""grant_type"":""password"",""appcode"":"" "",""companyid"":"" "",""version"":""1.0""}";
using (Stream dataStream = new MemoryStream(Encoding.Unicode.GetBytes(xx) ?? new byte[0]))
{
using (HttpContent content = new StreamContent(dataStream))
{
content.Headers.Add("Content-Type", "application/x-www-form-urlencoded");
var task = http.PostAsync("http://192.168.8.178:1646/token", content);
message = task.Result;
}
}
if (message != null && message.StatusCode == System.Net.HttpStatusCode.OK)
{
using (message)
{
string result = message.Content.ReadAsStringAsync().Result;
}
}
}
}
相关文章
- .NET Core开源Quartz.Net作业调度框架实战演练
- Asp.Net Web API 2第十三课——ASP.NET Web API中的JSON和XML序列化
- win7 64位 python3.4&opencv3.0配置安装
- [Servlet&JSP] 从JSP到Servlet
- UDP"打洞"原理
- WinForm中提示Circular base class dependency involving 'TestEncryption.Form' and 'TestEncryption.Form'
- 华为OD机试 - 简易内存池(Java & JS & Python)
- 华为OD机试 - 书籍叠放(Java & JS & Python)
- 你的NET程序需要保护吗?Agile.net 6.6.X 注入式Crack
- VB.net:VB.net编程语言学习之操作符(变量/常量/数据类型/声明)&逻辑控制语句(条件判断/循环语句)的简介、案例应用之详细攻略
- 从零开始学_JavaScript_系列(八)——js系列<2>(事件触发顺序、文本读取、js编写ajax、输入验证、下拉菜单)
- 数据库面试题【九、视图&视图的优缺点】
- .NET&Web前端-大三-国足信息后台管理——球员管理
- 【nodejs原理&源码赏析(5)】net模块与通讯的实现
- .Net——使用.net内置处理程序处理自己定义节点Demo
- ubuntu 下安装eclipse &java环境配置
- payload免杀之Installutil.exe&csc.exe利用【自己win7机器复现ok】 我下载的.net framework是4.8 不是最新的哈 最新的没有v2 csc.exe
- Net Core 微服务 - 如何在docker容器里运行一个简单的.net core web api 服务
- Asp.Net Core&CAP实现分布式事务
- VB.net:VB.net编程语言学习之操作符(变量/常量/数据类型/声明)&逻辑控制语句(条件判断/循环语句)的简介、案例应用之详细攻略
- VB.net:VB.net编程语言学习之基于VS软件连接SQL Server(利用ADO.NET操作数据库/添加新数据源/DataGridView数据表格控件)的简介、案例应用之详细攻略
- HTTP状态码含义:428、429、431、511&431状态码详解
- Chapter3 ROS通信机制----进阶篇(Ⅰ)&ROS常用函数及自定义头文件源文件的调用
- 【.Net实用方法总结】 整理并总结.NET 中的 System.IO.Pipelines(管道)
- 关于ASP.net开启身份验证时集成的托管管道模式下不适用的 ASP.NET 设置