C# HttpWebRequest传递参数多种方式混合使用
在做CS调用第三方接口的时候遇到了这样的一个问题,通过PSOTman调试需要分别在parmas、Headers、Body里面同时传递参数。在网上查询了很多资料,以此来记录一下开发脱坑历程。
POSTman调试界面:params参数
POSTman调试界面:Headers参数
POSTman调试界面:Body参数
在postman调试里面可以这么传递参数,那么在后台调用的时候我们改如何写呢。
经过查阅资料得知。params参数可以直接跟在请求的URL地址后面,Headers参数通过request.Headers.Add()方法添加,Body里面需要传递的格式为JSON直接通过JsonConvert.SerializeObject()将对象序列化,将request.ContentType = "application/json",特别注意的是ContentType不能通过request.Headers.Add()方法添加。
public static string getReportsContent(string param, string url, string RandomCode, string Authorization)
{
byte[] bytes = null;
HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url);
//获取请求的方式 request.Method = "post";
request.ContentType = "application/json";
request.Headers.Add("RandomCode", RandomCode);
request.Headers.Add("Authorization", Authorization);
bytes = Encoding.UTF8.GetBytes(param);
request.ContentLength = bytes.Length;
Stream strStream = request.GetRequestStream();
strStream.Write(bytes, , bytes.Length);
strStream.Close();
//获取设置身份认证及请求超时时间
SetWebRequest(request);
//就收应答
HttpWebResponse httpResponse = (HttpWebResponse)request.GetResponse();
Stream strStream1 = null;
strStream1 = httpResponse.GetResponseStream();
string responseContent = new StreamReader(strStream1, Encoding.UTF8).ReadToEnd();
return responseContent;
}
获取设置身份认证及请求超时时间
private static void SetWebRequest(HttpWebRequest request)
{
request.Credentials = CredentialCache.DefaultCredentials;
request.Timeout = ; }
C# HttpWebRequest传递参数多种方式混合使用的更多相关文章
- 【Spring】Spring之依赖注入(DI)传递参数的方式
DI依赖注入传入参数的方式,这里介绍了基本数据类型,集合,符合数据类型的传递(String类型比较特殊,其传递值和基本数据类型的方法一致) 注入基本数据类型和String类型 通过setter方法注入 ...
- angular中控制器之间传递参数的方式
在angular中,每个controller(控制器)都会有自己的$scope,通过为这个对象添加属性赋值,就可以将数据传递给模板进行渲染,每个$scope只会在自己控制器内起作用,而有时候需要用到其 ...
- js函数传递参数的方式------传值与传递指针
原则: 1. 基本类型:传值 2. 对象:传递指针 应用场景之一: 用jq选择器获取某个div后(例如:element),准备进行某些修改,之后添加到页面中去. 采取例一的方式,append后发现修改 ...
- python下多线程的限制以及多进程中传递参数的方式
python多线程有个全局解释器锁(global interpreter lock),这个锁的意思是任一时间只能有一个线程使用解释器,跟单cpu跑多个程序一个意思,大家都是轮着用的,这叫“并发”,不是 ...
- Delphi过程函数传递参数的八种方式
今天一同事问我为什么有些过程函数里面有Var而有些没有,不解,遂到网上百度,得解.快哉,快哉. 在Delphi过程.函数中传递参数几个修饰符为Const.Var.Out.另一种不加修饰符的为默认按值传 ...
- Delphi过程函数传递参数的几种方式
Delphi过程函数传递参数的几种方式 在Delphi过程.函数中传递参数几个修饰符为Const.Var.Out. 另一种不加修饰符的为默认按值传递参数. 一.默认方式以值方式传递参数 proced ...
- 复用$.ajax方式传递参数错误处理
1.封装后的方法,在 data:inData 传递参数的方式和一般不一样,如果不注意会出现错误. function getDataByJsonP(methName, inData, fn) { $.a ...
- delphi的一些语法知识 以及参数传递问题,按引用方式传递参数,按值方式传递参数
//delphi中exit,abort,break,continue 的区别 exit: 退出函数体abort: 遇到异常,安静处理,就是不显示不提示break: 退出当前循环体,包括for ,whi ...
- JSP重定向传递参数
我一个JSP程序,要实现前台提交数据给后台处理后,后台jsp自动跳转到另一个jsp页面,这种方式也叫重定向,重定向的方法有多种,暂时我试过的并且能成功的有两个: 一种是用 response.sendR ...
随机推荐
- 浅谈Python Django框架
1.Django简介 Python下有多款不同的 Web 框架,Django是最有代表性的一种.许多成功的网站和APP都基于Django. Django是一个开源的Web应用框架,由Python写成. ...
- DIRECTORY_SEPARATOR 与 getcwd
DIRECTORY_SEPARATOR:目录分隔符,linux上就是’/’ windows上是’\’ ,php的内置常量是一个显示系统分隔符的命令,php的内部常量,不需要任何定义与包含即可直接 ...
- 打地鼠游戏(2)之定义地鼠函数及函数原型 prototype
在JavaScript中,prototype对象是实现面向对象的一个重要机制. 每个函数就是一个对象(Function),函数对象都有一个子对象 prototype对象,类是以函数的形式来定义的.pr ...
- linux 手动睡眠
在 Linux 内核的之前的版本, 正式的睡眠要求程序员手动处理所有上面的步骤. 它是一 个繁琐的过程, 包含相当多的易出错的样板式的代码. 程序员如果愿意还是可能用那种方 式手动睡眠; <li ...
- css3动画@keyframes示例
.active { animation: chuiziza 0.5s ease 1 forwards; } .feijindan { display: block; animation: fei 2s ...
- 洛谷——P1160 队列安排(链表的基础操作)
#include<bits/stdc++.h> using namespace std; ]; list<int> stus; list<];//用来存放每一项的迭代器 ...
- Nginx与PHP交互过程 + Nginx与PHP通信的两种方式
一.Nginx与PHP交互过程的7步走(用户对动态PHP网页访问过程) step1:用户将http请求发送给nginx服务器(用户和nginx服务器进行三次握手进行TCP连接) step2:nginx ...
- ELK学习实验011:Logstash工作原理
Logstash事件处理管道包括三个阶段:输入→过滤器→输出.输入会生成事件,过滤器会对其进行修改,输出会将它们发送到其他地方.输入和输出支持编解码器,使您可以在数据进入或退出管道时对其进行编码或解码 ...
- k8s集群---apiserver,controller-manager,scheduler部署
#证书自签名脚本 root@k8s-master: ~/k8s/k8s-cert :: $ cat k8s-cert.sh cat > ca-config.json <<EOF { ...
- HTTP 安全头配置
在本篇中,我将介绍常用的安全头信息设置,并对每个响应头设置给出一个示例. HTTP安全头说明 Content-Security-Policy 内容安全策略(CSP)常用来通过指定允许加载哪些资源来防止 ...