IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 网络协议 -> ASP.NET日常开发随手记------关于http协议接口 -> 正文阅读

[网络协议]ASP.NET日常开发随手记------关于http协议接口

HTTP接口目前接触到的有两种:

①.共同点:
模式相同,接口方法大致相同,
②.不同点:
传参方式不同
HttpWebRequest中的ContentType方法不同
键值对方式为:“application/x-www-form-urlencoded”
非键值对为: “application/json”;

1.接口请求体为键值对方式

键值对请求体样例:
在这里插入图片描述

Srv中先定义:

private static readonly string DefaultUserAgent = "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.2; SV1; .NET CLR 1.1.4322; .NET CLR 2.0.50727)";

接口方法:

string url = "http://10.40.95.30/nwom/plugins/jswebservice/siteperformanceassess/assessResult.ilf"; --接口地址
string outData = "";
HttpWebRequest req = (HttpWebRequest)WebRequest.Create(url);
req.Method = "post";
req.ContentType = "application/x-www-form-urlencoded";
req.UserAgent = DefaultUserAgent;

Encoding requestEncoding = Encoding.GetEncoding("UTF-8");

string repData = JsonConvert.SerializeObject(opDetailList); --opDetailList为请求体

StringBuilder buffer = new StringBuilder();
buffer.AppendFormat("{0}={1}", "opDetail", repData); --opDetail为键(按照他的要求定义键),repData值(解析之后的请求体)

byte[] postData = requestEncoding.GetBytes(buffer.ToString());

using (Stream reqStream = req.GetRequestStream())
{
	reqStream.Write(postData, 0, postData.Length);
}

HttpWebResponse resp = (HttpWebResponse)req.GetResponse();

using (Stream stream = resp.GetResponseStream())
{
	using (StreamReader sr = new StreamReader(stream, Encoding.UTF8))
	{
		outData = sr.ReadToEnd();
	}
}

if (outData != null)
{

}

2.接口请求体非键值对

非键值对请求体样例:
"{
" alarmtitle \ ": [“基站退服”,“小区退服”],
\ "exResId \ ":[“2026413640”,“2031327029”],
\ "alarmnetype \ ":[“BTS”,“NodeB”],
\ "startEventTime\ ": 1542536234,
\ "endEventTime\ ": 1542709034
}"

接方法口:

UserNum un = new UserNum();
un.userName = userName;
un.password = passWord;
string repData = JsonConvert.SerializeObject(un);
byte[] postData = Encoding.UTF8.GetBytes(repData);
//ERP导入项目的API地址
string importProjectApiUrl = "http://10.40.9.185:60001/cloud/ailk-cms-ms-uac/auth";

string outData = "";
HttpWebRequest req = (HttpWebRequest)WebRequest.Create(importProjectApiUrl);
req.Method = "post";
req.ContentType = "application/json";

using (Stream reqStream = req.GetRequestStream())
{
	reqStream.Write(postData, 0, postData.Length);
}

HttpWebResponse resp = (HttpWebResponse)req.GetResponse();

using (Stream stream = resp.GetResponseStream())
{
	using (StreamReader sr = new StreamReader(stream, Encoding.UTF8))
	{
		outData = sr.ReadToEnd();
	}
}

if (outData != null)
{
}

特殊实例:
接口方要求请求接口时带参数:
类似:
curl -XPOST -H ‘Content-Type:application/json;charset=utf-8’ -H ‘Authorization:eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzUxMiJ9.eyJhY2Nfb2lkIjo0NzQsImFyZWFfbmFtZSI6ImFkbWluLmNvbSIsInN1YiI6ImNtcyIsInNwZWNpYWx0eSI6WzEsMiwzLDQsNSw2LDddLCJhY2NfbG9naW5uYW1lIjoiYWlsayIsImltc19waG9uZSI6IjE1MDYyMjA1NDk2IiwiYXJlYV9pZCI6MSwicm9sZV9uYW1lIjoiU1lTVEVNIiwiY2l0eV9uYW1lIjoi5rGf6IuP55yBIiwiY2l0eV9sYXllciI6MSwicm9sZV9pZCI6MSwiZXhwIjoxNTQ3ODA0MTk4LCJjaXR5X2lkIjoiMDAiLCJ0aW1lc3RhbXAiOjE1NDc4MDA1OTgwNDV9.I-MApLklxH4Zs3AGxWofwU3CLZpsFCFEY_knmrbqYVFuZbKnhHpZry3jzOXWa7aBoHbdLKz28ogIlIz9Y8OOCg’ ‘10.40.9.185:60001/cloud/ailk-cms-ms-alarmquery/size’ -d ‘{
“alarmtitle”:[“基站退服”,“小区退服”],
“exResId”:[“2026413640”,“2031327029”],
“alarmnetype”:[“BTS”,“NodeB”],
“startEventTime”:1542816000,
“endEventTime”:1542844800
}’
(绿色为请求参数中的键,红色为值,类似系统中处理页面的url?id=id)
只需要
HttpWebRequest req2 = (HttpWebRequest)WebRequest.Create(importProjectApiUrl2);
req2.Headers.Add(“Authorization”, Authorization); --前面的Authorization为上面标记中绿色部分,后面的Authorization为上方标记中红色部分

  网络协议 最新文章
使用Easyswoole 搭建简单的Websoket服务
常见的数据通信方式有哪些?
Openssl 1024bit RSA算法---公私钥获取和处
HTTPS协议的密钥交换流程
《小白WEB安全入门》03. 漏洞篇
HttpRunner4.x 安装与使用
2021-07-04
手写RPC学习笔记
K8S高可用版本部署
mySQL计算IP地址范围
上一篇文章      下一篇文章      查看所有文章
加:2021-10-04 13:09:53  更:2021-10-04 13:10:53 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年6日历 -2024/6/29 20:25:46-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码