在开发web应用时,在对Spring中的Controller进行测试时,需要发送各种get以及post请求进行测试,当然可以自己在浏览器里输入url或者对于测试而言使用Spring提供的MockMvc编写代码进行测试,但是当我们想要测试诸如带Form表格提交(提交文件)的post等请求时,直接在浏览器里输入url或者使用MockMvc(这个我还不知道怎么弄…)就不大好实现了,Restlet Client为我们提供了便利。

其地址为:https://restlet.com/modules/client/,可以安装Chrome浏览器插件,这样使用起来就更加方便,插件在浏览器界面如图所示:



主要有三个部分,REQUEST部分用来创建请求,RESPONSE部分表示请求的回复,可以在

COMPLETE REQUEST HEADERS部分查看自己发出的请求的完整请求头,接下来便创建请求

1. 创建普通get请求



发送get请求比较简单,直接输入url添加参数就可以了

2. 创建普通post请求

发送普通的post请求与1中的发送get请求类似,只是把METHOD改成post即可,再添加必要的参数

3. 创建post请求,模拟form提交表单

有时我们需要模拟form表单提交文件,此时对应controller代码可以如下获取

    @RequestMapping("/proj")
@ResponseBody
public AjaxResult upload(String fileName, InputStream inputStream, HttpServletRequest request) {
MultipartHttpServletRequest multiRequest = (MultipartHttpServletRequest) request;
int fileCount = 0;
Iterator<String> iterator = multiRequest.getFileNames();
while (iterator.hasNext()) {
String formFileElementName = iterator.next();
fileCount++;
MultipartFile multipartFile = multiRequest.getFile(formFileElementName);
if (null == multipartFile) {
throw new Exception("文件不能为空");
}
}
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15

当我们发送模拟form表单请求时,注意到request请求实际为MultipartHttpServletRequest类型,Spring会自动填充inputStream参数,实际上他与request里的inputStream是同一个,在restlet可以如下模拟



有几个需要注意的地方:

  • BODY选项里面选择Form
  • 点击 Add form parameter并选择类型为File同时注意一定要写文件名,不然Controller里的代码Iterator<String>

    iterator = multiRequest.getFileNames();
    是获取不到文件名的
  • 注意Content-Type类型为multipart/form-data

    我们查看下面的COMPLETE REQUEST HEADERS,可以发现我们的请求类型为 multi/form-data,同时Restlet Client会自动帮我们设置boundary头部



    4. 创建post请求,直接传输文件

    除了模拟form表单提交文件,我们也可以直接在body里添加文件,这时controller对应的request就不是MultipartHttpServletRequest类型



    选择BODY中的File选项,并拖拽文件,此时Restlet Client会自动帮我们填入对应的Content-type类型

使用Restlet Client发送各种Get和Post请求的更多相关文章

  1. Restlet Client发送GET、POST等请求

    插件下载 百度云盘 链接:https://pan.baidu.com/s/13R4s1UR5TONl2JnwTgtIYw 密码:rt02 插件安装 解压后,直接拖进浏览器中. 功能演示

  2. 【经验随笔】Restlet Client发送XML格式参数消息

    背景介绍 Restlet Client是一款模拟客户端发送http请求的chrome插件,可以作为驱动调试后台程序,个人觉得比POSTMAN好用.CXF是一款发布restful服务的开源组件. 编写r ...

  3. Android简单实现Socket通信,client连接server后,server向client发送文字数据

    案例实现的是简单的Socket通信,当client(Androidclient)连接到指定server以后,server向client发送一句话文字信息(你能够拓展其他的了) 先看一下服务端程序的实现 ...

  4. JAVA Socket 实现HTTP与HTTPS客户端发送POST与GET方式请求

    JAVA Socket 实现HTTP与HTTPS客户端发送POST与GET方式请求 哇,一看标题怎么这么长啊,其实意思很简单,哥讨厌用HTTP Client做POST与GET提交 觉得那个毕竟是别人写 ...

  5. httpclient就是个能发送http连接的工具包,包括能发送post请求和get请求

    1.httpclient就是个能发送http连接的工具包,包括能发送post请求和get请求. http 连接一次就有返回流.http是个双向的嘛.只有连接了,就会有输出返回流. 所以在执行http连 ...

  6. php发送http put/patch/delete请求

    今天学RESTful API的编写,发现不知道怎么发送HTTP PUT/PATCH/DELETE请求,还是要学习一个. 使用curl_opt函数来发送各式各样的http请求动作,不仅限于get和pos ...

  7. [Socket网络编程]由于套接字没有连接并且(当使用一个 sendto 调用发送数据报套接字时)没有提供地址,发送或接收数据的请求没有被接受。

    原文地址:http://blog.sina.com.cn/s/blog_70bf579801017ylu.html,记录在此方便查看 解决办法: MSDN的说明: Close 方法可关闭远程主机连接, ...

  8. c++如何使用SOCKET 发送HTTP1.1 GET POST请求包

    如何使用SOCKET 发送HTTP1.1 GET POST请求包 分类: 无线通信 C/C++2009-10-29 10:58 14259人阅读 评论(15) 收藏 举报 socket服务器actio ...

  9. php发送http put/patch/delete请求Demo

    CURL请求对于PHPer是必备技能,使用curl_opt函数来发送各式各样的http请求动作,不仅限于get和post.在测试自己的restful api的时候,通过访问这个代理发送http put ...

随机推荐

  1. 关于python中矩阵的实现和矩阵的转置

    python中矩阵的实现是靠序列,,, 序列有很多形式, 其实矩阵是现实生活中的东西,把现实生活中的结构转换到程序中. 就需要有个实现的方法,而这种路径是多种多样的. 下面给出一个把矩阵转换成pyth ...

  2. HTML 5 中FileReader的使用

    FileReader 接口主要用来把文件读入到内存中,而且读取文件里的数据.FileReader接口提供了一个异步API,使用该API能够在浏览器主线程中异步訪问文件系统 ,读取文件里的数据. Fil ...

  3. jqgrid 实现行编辑,表单编辑的列联动

    这个问题的场景相信大家都遇到过,比方有A,B,C三列,B,C列均为下拉框.可是C列的值是由B列的值来决定的.即C列中的值是动态变化的,变化的根据就是B列中你选择的值. 本文给出的是一个有用,简易快捷的 ...

  4. NLP系列(1)_从破译外星人文字浅谈自然语言处理的基础

    作者:龙心尘 &&寒小阳 时间:2016年1月. 出处: http://blog.csdn.net/longxinchen_ml/article/details/50543337, h ...

  5. Hadoop笔记(一)

    1.大数据的概述 大数据:巨量数据.海量数据,首先在数据的量上达到一定的规模,首先是人或者计算机在不合理时间内是不能够实现的数据量. 2.特点:数据量比较大,数据类型多样化.处理速度问题 3.大数据平 ...

  6. 硬件——STM32 , SN74HC573锁存器

    74HC573是一款高速CMOS器件: 上图中:输出使能为:OE   锁存使能为:LE 典型电路: 上图中:PWR-AL-0,PWR-AL-1,PWR-AL-2:是单片机输出的高低电平给573 对应的 ...

  7. 新浪sae上安装原生wordpress4.1

    1. 加入/改动wp-config.php文件 <?php /** * WordPress 基础配置文件. * * 本文件包括下面配置选项: MySQL 设置.数据库表名前缀. * 密匙.Wor ...

  8. minizlib

    ZLIB开源库采用的是DEFLATE压缩算法,已经不支持加密功能,实际上功能还存在于代码中,采用MINIZIP可以支持对ZIP文件的加解密. ZLIB目前最新的是1.2.7,MINIZIP最新的版本是 ...

  9. [PReact] Handle Simple Routing with preact-router

    Some applications only need a very minimal routing solution. This lesson will cover a practical exam ...

  10. [Angular2Fire] Firebase auth (Google, Github)

    To do auth, first you need to go firebase.console.com to enable the auth methods, for example, enabl ...