post 请求参数格式

post 请求参数格式最近项目部署到新环境 tomcat mysql 想看看项目部署成功没有 就用 soupui 调对应接口开测试 soupui 使用比较简单 给上接口地址 入参 xml 报文 把入参的 mediaType 设置为 application xml 点击调用就可以了 但是点击调用返回值为空 对 就是啥都没返回 XML JSON HTML 这些选项都是空的 也不报错 我就郁闷了 后来问组里高手才知道 post 请求的入参数据格式不正确 soupui 不是万能的测试工具 这算是

最近项目部署到新环境tomcat+mysql,想看看项目部署成功没有,就用soupui调对应接口开测试,soupui使用比较简单,给上接口地址,入参xml报文,把入参的media Type设置为application/xml 点击调用就可以了。但是点击调用返回值为空。对,就是啥都没返回。XML,JSON,HTML这些选项都是空的。也不报错。我就郁闷了。后来问组里高手才知道post请求的入参数据格式不正确,soupui不是万能的测试工具。这算是掉坑了

错误原因就是不知道post请求服务的数据格式是有要求的,而我完全以为符合xml报文格式就行了。不知道还有一层要求。post对数据格式的要求。下面就学习一下吧,文章来之转载,博主写的实在太好了~


HTTP/1.1 协议规定的 HTTP 请求方法有 OPTIONS、GET、HEAD、POST、PUT、DELETE、TRACE、CONNECT 这几种。其中 POST 一般用来向服务端提交数据,本文主要讨论 POST 提交数据的几种方式。

我们知道,HTTP 协议是以 ASCII 码传输,建立在 TCP/IP 协议之上的应用层规范。规范把 HTTP 请求分为三个部分:状态行、请求头、消息主体。类似于下面这样:

<method> <request-URL> <version> <headers> 

<entitybody>

1. application/x-www-form-urlencoded

这应该是最常见的 POST 提交数据的方式了。浏览器的原生 表单,如果不设置 enctype 属性,那么最终就会以 application/x-www-form-urlencoded方式提交数据。请求类似于下面这样(无关的请求头在本文中都省略掉了):

POST http://www.example.com HTTP/1.1 Content-Type: application/x-www-form-urlencoded;charset=utf-8 

title=test&sub%5B%5D=1&sub%5B%5D=2&sub%5B%5D=3

首先,Content-Type 被指定为 application/x-www-form-urlencoded;其次,提交的数据按照 key1=val1&key2=val2 的方式进行编码,key 和 val 都进行了 URL 转码。大部分服务端语言都对这种方式有很好的支持。例如 PHP 中,$_POST['title'] 可以获取到 title 的值,$_POST['sub'] 可以得到 sub 数组。
requestMessage= 
  ...> 
   
   ... 
  

再调用就可以了。就是仿form表单提交这种数据提交方式完成请求的。

2. multipart/form-data

这又是一个常见的 POST 数据提交的方式。我们使用表单上传文件时,必须让 表单的 enctype 等于 multipart/form-data。直接来看一个请求示例:

POST http://www.example.com HTTP/1.1 Content-Type:multipart/form-data; boundary=----WebKitFormBoundaryrGKCBY7qhFd3TrwA 

PNG content of chrome.png
——WebKitFormBoundaryrGKCBY7qhFd3TrwA–

3. application/json

var data = { 
  'title':'test', 'sub' : [1,2,3]}; $http.post(url, data).success(function(result) { ... });

最终发送的请求是:

POST http://www.example.com HTTP/1.1  Content-Type: application/json;charset=utf-8 

{
“title”:“test”,“sub”:[1,2,3]}

4. text/xml

我的博客之前提到过 XML-RPC(XML Remote Procedure Call)。它是一种使用 HTTP 作为传输协议,XML 作为编码方式的远程调用规范。典型的 XML-RPC 请求是这样的:

POST http://www.example.com HTTP/1.1 Content-Type: text/xml 


xml version=“1.0”?>

<methodCall>
<methodName>examples.getStateName
methodName>

<params>
<param>
<value><i4>41
i4>

value>


param>


params>


methodCall>








XML-RPC 协议简单、功能够用,各种语言的实现都有。它的使用也很广泛,如 WordPress 的 XML-RPC Api,搜索引擎的 ping 服务等等。JavaScript 中,也有现成的库支持以这种方式进行数据交互,能很好的支持已有的 XML-RPC 服务。不过,我个人觉得 XML 结构还是过于臃肿,一般场景用 JSON 会更灵活方便。

参考博文:四种常见的 POST 提交数据方式

 
  
0
0
 
  
« 上一篇: Notepad++打开xml文件显示crlf的问题
» 下一篇: 解决Eclipse 启动后总是Building WorkSpace(sleeping)
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/212231.html原文链接:https://javaforall.net

(0)
上一篇 2026年3月18日 下午8:31
下一篇 2026年3月18日 下午8:31


相关推荐

  • 解决主流浏览器不再支持Flash Player的一个简单可行的办法

    解决主流浏览器不再支持Flash Player的一个简单可行的办法解决主流浏览器不再支持FlashPlayer的一个简单可行的办法今天一个朋友因为打不开网页上的flash视频而发愁,本人便自告奋勇地要帮助他解决问题。自从2020年12月起,各大浏览器纷纷宣布不支持FlashPlayer,导致很多网站不能正常使用。网上的解决方案五花八门,安装插件的,借助脚本的,借助中间件的,实行起来非常困难。经过几个小时的尝试,终于找到了最快速可行的、没有技术门槛的方法:下载一个特殊的旧版国产浏览器。这个浏览器就是傲游浏览器(Max…

    2022年5月4日
    106
  • vmware linux安装教程_vmware10虚拟机安装教程

    vmware linux安装教程_vmware10虚拟机安装教程一、安装VMware下载地址(16pro):https://www.aliyundrive.com/s/FSktJJXsfa8安装:选一下安装地址,一直下一步即可。(可能会要求重启电脑,重启即可)二、安装Linux下载地址:CentOS-7.5提取码:486k接下来看图操作2.1新建虚拟机现在我们就相当于买电脑,先把电脑配置整好。什么cpu啊内存条啊硬盘啊什么乱七八糟的,先不着急装系统。这里看你装什么版本的Linux了,我装的是GenOS7.564位所以选的是Ge

    2022年10月8日
    5
  • ONOS 中的LLDP协议,用到一个固定的MAC

    ONOS 中的LLDP协议,用到一个固定的MAC使用ONOS+openflow硬件交换机的环境中,在交换机上可以看到02-EB-9F-67-C9-42这个MAC及相关流表。其并不是某个交换机、host的MAC,而是ONOSLLDPapp中定义的一个源MAC,用于ONOS的链路发现功能。ONOSPacketout消息抓包截图:关于SDN控制器+openflow+LLDP,网上已经很多人写了,在此就直接搬移一篇总结不错的:Op…

    2022年5月29日
    48
  • shmget报错Invalid argument

    shmget报错Invalid argument一 先看测试代码 include include include includeusing intmain intkey intkey intsize intrtn shmget key size IPC CREAT 0666

    2026年3月18日
    2
  • ajax菜鸟教程html,菜鸟教程–AJAX[通俗易懂]

    一.简介1.AJAX是一种在无需重新加载整个网页的情况下,能够更新部分网页的技术。2.AJAX=异步JavaScript和XML。3.通过在后台与服务器进行少量数据交换,AJAX可以使网页实现异步更新。这意味着可以在不重新加载整个网页的情况下,对网页的某部分进行更新。二.原理:1.创建XMLHttpRequest对象(1).XMLHttpRequest对象:所有现代浏览器均支…

    2022年4月8日
    85
  • pycharm教育版申请_pycharm专业版学生免费吗

    pycharm教育版申请_pycharm专业版学生免费吗前提准备:已经下载安装好了PyCharm专业版如果你还没下载,也别方张~嘻嘻嘻点击下面

    2022年8月26日
    8

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号