HttpClient 调用WebAPI时,传参的三种方式
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[]))
{
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;
}
}
} }
HttpClient 调用WebAPI时,传参的三种方式的更多相关文章
- 【service调用dao层传参的三种方式】
第一种方案:默认数组角标: service Public User selectUser(String name,String area); mapper: <select id="s ...
- react-绑定this并传参的三种方式
绑定this并传参的三种方式 在事件中绑定this并传参: <input type="button" value="在事件中绑定this并传参" onCl ...
- vue路由传参的三种方式以及解决vue路由传参页面刷新参数丢失问题
最近项目中涉及到跨页面传参数和后台进行数据交互,看到需求之后第一反应就是用路由传参来解决:Vue中给我们提供了三种路由传参方式,下面我们一个一个的来看一下: 方法一:params传参: this.$r ...
- React中使用 react-router-dom 路由传参的三种方式详解【含V5.x、V6.x】!!!
路由传值的三种方式(v5.x) params参数 //路由链接(携带参数): <Link to='/demo/test/tom/18'}>详情</Link> //或 <L ...
- Vue-router路由传参的三种方式
本文简单介绍下三种路由传参: (1)在路由中配置 { path : ‘/home/:id’, name : ‘Dome’, component } 然后写调用的时候 this.$router.push ...
- vue路由传参的三种方式区别(params,query)
最近在做一个项目涉及到列表到详情页的参数的传递,网上搜索一下路由传参,结合自己的写法找到一种适合自己的,不过也对三种写法都有了了解,在此记录一下 <ul class="table_in ...
- vue里面路由传参的三种方式
1.方式一 通过query的方式也就是?的方式路径会显示传递的参数 HTML的方式<router-link :to="{name:xxx,query:{page:1,code:8899 ...
- vue路由传参的三种方式
方式一 通过query方式传参 这种情况下 query传递的参数会显示在url后面 this.$router.push({ path: '/detail', query: { id: id } }) ...
- 3.struts2接收页面传参的三种方式
Struts2通过拦截器机制封装了三种接收页面参数的方式: 1.属性驱动 2.模型驱动(有两种) Domain ModelDriven 1.属性驱动:这种方式比较简单,只要你直接在页面定义变量并且符合 ...
随机推荐
- 清晰讲解SQL语句中的外连接,通用于Mysql和Oracle,全是干货哦
直入主题: 我们做一个操作,将员工SCOTT的部门去掉,再次通过内连接查看数据,看看会产生什么现象? 使用内连接,查询数据 问题:找不到SCOTT员工了,只有13条数据,这显然不合理:这就是内连接的缺 ...
- LoadRunner学习笔记(二)
LoadRunner Controller简介: 当虚拟用户脚本开发完成后,使用controller将这个执行脚本的用户从单用户转化为多用户,从而,模拟大量用户操作, 进而形成负债(多用户单循环,多用 ...
- vertx的Actor模型实现
前言 note: Context 与 EventLoop 关系 : N ; 每次创建一个vericles或者multi instances 通过EventLoopGroup.next挑出一个Event ...
- 获取Shell脚本当前的目录
https://qiushao.net/article/1489983836453?p=1&m=0 SCRIPT_DIR=$(cd $(dirname ${BASH_SOURCE[0]}); ...
- kafka常规及几个重要的操作命令
1. 查看所有topic kafka-topics.sh --zookeeper hadoop3 --list 2. 创建tooic及topic的partitioner ./kafka-topics. ...
- solution for python can not import local module
blog 这次遇到的问题是sys.path的输出不包含'',导致无法import当前文件和文件夹 When no ._pth file is found, this is how sys.path i ...
- CentOs下手动升级node版本
查找对应的nodejs包,具体参考https://nodejs.org/download/release/ 切换到安装node的位置 此处为/usr/local/lib/nodejs 不存在可以建立 ...
- Anconda 3.7安装以及使用详细教程
Anconda 3.7安装以及使用详细教程 2019-04-17 22:42:03 一.下载anconda 3.7 链接地址:官方地址 二.安装 双击下载好的Anaconda3-2019.03- ...
- 指针*p,p,&p等辨别
#include<iostream> #include<iomanip> #include<cmath> using namespace std; int main ...
- CAGradientLayer简介 实现颜色渐变
CAGradientLayer使用: CAGradientLayer*gradient = [CAGradientLayerlayer]; gradient.frame = subLayer.fram ...