C# Postman或者PostApi调试前端webapi接口发送带有request/body/head信息

知识:

前端接口,表单形式提交。

 req.ContentType = "application/x-www-form-urlencoded";

x-www-form-urlencoded 是一种常见的 MIME 类型,用于将键值对编码为 HTTP 请求体中的 URL 编码格式。在 Web API 中,x-www-form-urlencoded 主要应用于以下场景:
1. 表单数据提交
场景:当 HTML 表单的提交方式为 POST,默认会以 x-www-form-urlencoded 格式提交数据。 
应用:适用于小型数据,如登录信息、简单的表单数据(用户名、密码等)。 
特点: 数据以键值对形式编码,键和值都经过 URL 编码。 
示例编码: username=johndoe&password=1234
2. 与传统 API 的兼容
场景:许多早期或传统的 Web API 采用 x-www-form-urlencoded 格式来接收 POST 请求数据。 
应用:如旧版 OAuth 认证或支付网关集成。 
示例: POST /api/token HTTP/1.1
Content-Type: application/x-www-form-urlencoded

grant_type=client_credentials&client_id=abc123&client_secret=xyz789
3. 轻量级数据交互
场景:在不需要复杂 JSON 或 XML 格式的场景下,使用 x-www-form-urlencoded 可以减少数据体积。 
应用:如简单的查询参数传递或配置请求。 
4. 跨平台兼容性需求
场景:某些环境(如嵌入式设备、低版本浏览器)可能对 JSON 或其他复杂格式支持不足,但对 x-www-form-urlencoded 支持较好。 
应用:简单的 GET/POST 数据通信。 
5. URL 查询参数替代
场景:URL 中的查询参数可能过长,或者 GET 请求的长度限制较大时,将参数改为 x-www-form-urlencoded 格式放在请求体中。 
示例: POST /search HTTP/1.1
Content-Type: application/x-www-form-urlencoded

query=hello&limit=10&page=2
优势与局限性
优势
简单易用:键值对结构易于理解。 
轻量级:编码后的数据相对紧凑。 
兼容性强:适用于大多数服务器和语言框架。 
局限性
不适合复杂数据:嵌套或多层结构的数据需要额外的解析。 
数据量限制:URL 编码后的数据可能会变大,不适合传输大数据。 
安全性:敏感信息(如密码)容易被截获,需结合 HTTPS 使用。 
总结
x-www-form-urlencoded 适合简单的表单提交、传统 API 兼容以及轻量级数据传输。如果场景需要传输复杂的数据结构,可以考虑 JSON 或其他格式。

测试方法:

给接口发送的内容:

调试工具填入接口:

选择Body,再选择urlencoded,填入发送的内容,其他参数名根据提供方提供信息填写(这里的三个参数将以键值对形式代码发送

点击发送,即可测试

可查看代码生成

多种形式供参考,方便集成到项目代码中

第一项reqInfo,发送json格式内容可以放在txt文件读取到request_msg,通过键值对形式发送

内容类型:

 req.ContentType = "application/x-www-form-urlencoded"; 

把apipost三个参数放入键值对形式放入dic_value

 public static string PostUrlEncoded(string url, Dictionary<string, string> dic){url = @"http://102.101.10.16:8080/tesbxrest/Restxxxervice/postxxxxxequest";string request_msg = CFile_Operation.readfile_test();Dictionary<string, string> dic_value = new Dictionary<string, string>() { {"reqInfo",request_msg },{ "xxsenderId","xxxESSender"},{ "xxtimerOut","5000"} };dic = dic_value;string result = "";HttpWebRequest req = (HttpWebRequest)WebRequest.Create(url);req.Method = "POST";req.ContentType = "application/x-www-form-urlencoded";#region 添加Post 参数StringBuilder builder = new StringBuilder();int i = 0;foreach (var item in dic){if (i > 0)builder.Append("&");builder.AppendFormat("{0}={1}", item.Key, item.Value);i++;}byte[] data = Encoding.UTF8.GetBytes(builder.ToString());req.ContentLength = data.Length;using (Stream reqStream = req.GetRequestStream()){reqStream.Write(data, 0, data.Length);reqStream.Close();}#endregionHttpWebResponse resp = (HttpWebResponse)req.GetResponse();Stream stream = resp.GetResponseStream();//获取响应内容using (StreamReader reader = new StreamReader(stream, Encoding.UTF8)){result = reader.ReadToEnd();}return result;}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/60686.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

李宏毅机器学习课程知识点摘要(1-5集)

前5集 过拟合&#xff1a; 参数太多&#xff0c;导致把数据集刻画的太完整。而一旦测试集和数据集的关联不大&#xff0c;那么预测效果还不如模糊一点的模型 所以找的数据集的量以及准确性也会影响 由于线性函数的拟合一般般&#xff0c;所以用一组函数去分段来拟合 sigmoi…

CentOS:A服务器主动给B服务器推送(上传),B服务器下载A服务器文件(下载)

Linux:常识(bash: ip command not found )_bash: ip: command not found-CSDN博客 rsync 中断后先判断程序是否自动重连:ps aux | grep rsync 查看目录/文件是否被使用(查询线程占用):lsof /usr/local/bin/mongodump/.B_database1.6uRCTp 场景:MongoDB中集合非常大需要…

七、SElinux

一、SElinux简介 SELinux是Security-Enhanced Linux的缩写&#xff0c;意思是安全强化的linuxSELinux 主要由美国国家安全局(NSA)开发&#xff0c;当初开发的目的是为了避免资源的误用传统的访问控制在我们开启权限后&#xff0c;系统进程可以直接访问当我们对权限设置不严谨时…

opencv相关报错

官网 报错&#xff1a; ./smart_car_camera ./smart_car_camera: error while loading shared libraries: libpython3.8.so.1.0: cannot open shared object file: No such file or directory 一、 解决方法&#xff1a; 安装 mlocate 工具&#xff0c;这样才能使用 update…

小程序25- iconfont 字体图标的使用

项目中使用到图标&#xff0c;一般由公司设计进行设计&#xff0c;设计好后上传到阿里巴巴矢量图标库 日常开发过程中&#xff0c;也可以通过 iconfont 图标库下载使用自带的图标 补充&#xff1a;使用 iconfont 图标库报错&#xff1a;Failed to load font 操作步骤&#xff…

鸢尾花植物的结构认识和Python中scikit-learn工具包的安装

鸢尾花植物的结构认识和Python中scikit-learn工具包的安装 鸢尾花植物的结构认识和Python中scikit-learn工具包的安装 鸢尾花植物的结构认识和Python中scikit-learn工具包的安装一、鸢尾花的认识1.1 对花结构和功能认识1.2、鸢尾花认识1.2.1 鸢尾花种类1.2.2 鸢尾花结构 二. Py…

[Unity]在TileMap上控制Camera移动、缩放

环境&#xff1a; unity2021.3.14f1c1Camera类型OrthographicTileMap为XY方向摆放 功能&#xff1a; 单点触摸或鼠标操作移动Camera。使用BoxCollider2D控制地图范围。鼠标滚轮或多点触摸控制缩放。缩放维持中心点在屏幕的固定位置。 代码&#xff1a; using System; usin…

Unity3D 截图

使用 Unity3D 自带的截图接口&#xff0c;制作截图工具。 截图 有时候我们想对 Unity 的窗口进行截图&#xff0c;如果直接使用一些截图工具&#xff0c;很难截取到一张完整分辨率的图片&#xff08;例如&#xff0c;我们想要截取一张 1920 * 1080 的图片&#xff09;。 其实…

【Mysql】视图--介绍和作用 视图的创建

1、介绍 &#xff08;1&#xff09;视图&#xff08;view&#xff09;是一个虚拟表&#xff0c;非真实存在&#xff0c;其本质是根据SQL语句获取动态的数据集&#xff0c;并为其命名&#xff0c;用户使用时只需使用视图名称既可获取结果集&#xff0c;并可以将其当作表来使用。…

Mysql的加锁情况详解

最近在复习mysql的知识点&#xff0c;像索引、优化、主从复制这些很容易就激活了脑海里尘封的知识&#xff0c;但是在mysql锁的这一块真的是忘的一干二净&#xff0c;一点映像都没有&#xff0c;感觉也有点太难理解了&#xff0c;但是还是想把这块给啃下来&#xff0c;于是想通…

丹摩征文活动 | AI创新之路,DAMODEL助你一臂之力GPU

目录 前言—— DAMODEL&#xff08;丹摩智算&#xff09; 算力服务 直观的感受算力提供商的强大​ 平台功能介绍​ 镜像选择 云磁盘创建 总结 前言—— 只需轻点鼠标,开发者便可拥有属于自己的AI计算王国 - 从丰富的GPU实例选择,到高性能的云磁盘,再到预配置的深度学习…

Linux之日志

日志 在编写网络服务器, 各种软件时, 程序一定要打印一些日志信息. 1. 可以向显示器打印, 也可以向文件中写入. 2. 日志是软件在运行时记录的流水账, 用于排查服务进程挂掉的信息. 其中必须要有的是: 日志等级, 时间, 日志内容.可选的是文件名, 代码行数, 进程pid 等 日志…

IDEA指定Maven的settings不生效问题处理

文章目录 一、问题描述二、问题分析三、问题解决 一、问题描述 在Idea中手动指定了maven的settings配置文件&#xff0c;但是一直没生效。 如下图&#xff1a;设置加载settings-aliyun.xml文件&#xff0c;但是最后发现还是在加载settings.xml文件 二、问题分析 ‌在Intel…

在 for 循环中,JVM可能会将 arr.length 提升到循环外部,仅计算一次。可能会将如何解释 详解

在 Java 的 for 循环中&#xff0c;JVM 有能力进行优化&#xff0c;将 arr.length 的访问提升到循环外部&#xff0c;避免每次迭代都重新计算 arr.length。这种优化主要是由于 JVM 的 即时编译器&#xff08;JIT&#xff09; 和 逃逸分析&#xff08;Escape Analysis&#xff0…

【软考】数据库

1. 数据模型 1.1 概念数据模型 概念数据模型一般用 E-R 图表示&#xff0c;常用术语如下&#xff1a; 实体&#xff1a;客观存在的事物&#xff0c;如&#xff1a;一个单位、一个职工、一个部门、一个项目。属性&#xff1a;学生实体有学号、姓名、出生日期等属性。码&#…

oneplus6线刷、trwp、magisk(apatch)、LSPosed、Shamiko、Hide My Applist

oneplus6线刷android10.0.1 oneplus6线刷包(官方android10.0.1)下载、线刷教程&#xff1a; OnePlus6-brick-enchilada_22_K_52_210716_repack-HOS-10_0_11-zip 启用开发者模式 设置 / 连续点击6次版本号 : 启用开发者模式设置/开发者模式/{打开 usb调试, 打开 网络adb调试,…

ByteBuffer模拟拆包输出消息字符串

以下代码模拟网络编程中的粘包现象&#xff0c;用\n进行分割消息块 源码 public static void main(String[] args) {ByteBuffer byteBuffer1 ByteBuffer.allocate(60) ;byteBuffer1.put("Hello World\nWhat is you name?\nI am Licky!\nHo".getBytes());splice(byt…

成都睿明智科技有限公司怎么样可靠不?

在这个日新月异的数字时代&#xff0c;电商行业如同一股不可阻挡的洪流&#xff0c;席卷着每一个消费者的生活。而抖音&#xff0c;作为短视频与电商完美融合的典范&#xff0c;更是为无数商家开辟了一片全新的蓝海。在这片充满机遇与挑战的海洋中&#xff0c;成都睿明智科技有…

【计算机网络】多路转接之epoll

epoll也是一种linux中的多路转接方案(epoll也是只负责IO过程中的"等") 一、epoll相关接口的使用 1.epoll_create int epoll_create(int size); ​功能&#xff1a;创建一个epoll模型 ① int size&#xff1a;没意义了 >0就行 返回值&#xff1a;返回一个文件…

虚拟机上搭建达梦DSC简略步骤

vmware 17 centos 7.6 达梦 dm8_20240920_x86_rh7_64.iso cd /d C:\Program Files (x86)\VMware\VMware Workstation\.\vmware-vdiskmanager.exe -c -s 100MB -a lsilogic -t 2 "F:\vm\dmdsc\sharedisk\share-dcr.vmdk" .\vmware-vdiskmanager.exe -c -s 100MB -a l…