当前位置: 首页 > article >正文

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();
            }
            #endregion
            HttpWebResponse resp = (HttpWebResponse)req.GetResponse();
            Stream stream = resp.GetResponseStream();
            //获取响应内容
            using (StreamReader reader = new StreamReader(stream, Encoding.UTF8))
            {
                result = reader.ReadToEnd();
            }
            return result;
        }


http://www.kler.cn/a/404223.html

相关文章:

  • centos安装jenkins
  • 04 —— Webpack打包CSS代码
  • 问题: redis-高并发场景下如何保证缓存数据与数据库的最终一致性
  • SAP B1 登陆报错解决方案 - 系统架构目录服务器选择
  • React Native 全栈开发实战班 - 图片加载与优化
  • Spring Cloud Stream实现数据流处理
  • 量化交易系统开发-实时行情自动化交易-4.2.1.简单移动平均线实现
  • vscode 远程连接ssh 密钥方式
  • 在有网络连接的机器上打包 electron 及其依赖项,在没有网络连接的机器上安装这些离线包
  • 【数据结构】【线性表】【练习】反转链表
  • Docker安装并配置Mongodb4.0
  • mongodb多表查询,五个表查询
  • 【蓝桥】宝藏排序Ⅱ----Array.sort和PriorityQueue
  • LeetCode题练习与总结:Fizz Buzz--412
  • 深度解析神经网络中的最大池化层:工作原理、参数配置与应用示例
  • 「Java EE开发指南」如何使用Visual JSF编辑器设计JSP?(一)
  • 【vue】vue中.sync修饰符如何使用--详细代码对比
  • 【Word】一键批量引用论文上标——将正文字体改为上标格式
  • Flink升级程序和版本
  • word-毕业论文的每一章节的页眉单独设置为该章的题目怎么设置
  • Houdini和Blender如何使用CPU云渲染
  • 深度学习之One Stage目标检测算法2
  • 深入解析Python中的逻辑回归:从入门到精通
  • 哋它亢SEO技术分析:如何提升网站在搜索引擎中的可见性
  • 自然语言处理:第六十二章 KAG 超越GraphRAG的图谱框架
  • 【三合黑马指标】指标操盘技术图文教程,三线粘合抓黑马,短线买点持股辅助,通达信炒股软件指标