使用Restlet Client发送各种Get和Post请求

在开发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类型

原文地址:https://www.cnblogs.com/jpfss/p/9778113.html

时间: 2024-10-19 15:22:14

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

Restlet Client发送GET、POST等请求

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

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

1.httpclient就是个能发送http连接的工具包,包括能发送post请求和get请求. http 连接一次就有返回流.http是个双向的嘛.只有连接了,就会有输出返回流. 所以在执行http连接的时候,返回值都是http连接的返回流. HttpResponse response = client.execute(httpPost); 2.http发送,body里是可以写入中文的.但要注意乱码问题: public static String getHttpRequestString(Str

Postman发送带cookie的http请求

Postman是chrome上一个非常好用的http客户端插件,可惜由于chrome安全的限制,发不出带cookie的请求.如果想要发送带cookie的请求,需要开启Interceptor: 这个Interceptor还需要到chrome应用商店下载 Postman Interceptor 扩展程序.现在能发送带cookie的http请求.发送cookie时,在header中添加key-value,key固定为Cookie,value是cookie具体的k=v,例如: 需要注意的是,发送带coo

socket 错误之:OSError: [WinError 10057] 由于套接字没有连接并且(当使用一个 sendto 调用发送数据报套接字时)没有提供地址,发送或接收数据的请求没有被接受。

出错的代码 #server端 import socket import struct sk=socket.socket() sk.bind(('127.0.0.1',8080)) sk.listen() conn,addr=sk.accept() str_len1=struct.unpack('i',conn.recv(4))[0] print(sk.recv(str_len1)) str_len2=struct.unpack('i',conn.recv(4))[0] print(sk.recv

uip UDP server广播模式(client能够随意port,而且主动向client发送数据)

眼下移植uip,发现UDP server模式下,必须指定本地port以及clientport,否则仅仅能讲clientport设置为0,才干接收随意port的数据,可是无法发送数据,由于此时clientport设置为0了,我通过将原始数据包中的clientport保存下来,而且在发送的时候将clientport替换为指定的port,发送完毕之后又设置为0,这样就实现了向随意clientport发送数据. uip.c if(uip_udp_conn->lport != 0 && UDP

java--socket实现一个client像还有一个client发送信息

首先建立接收方socket服务端 package com.haier.socket.server; import java.io.BufferedReader; import java.io.InputStreamReader; import java.net.Socket; import org.apache.log4j.Logger; import com.haier.socket.PolicyServer; public class TVServer implements Runnable

TCP服务器,实现client发送消息,server接收消息

server.c #include<stdio.h>#include<sys/types.h>#include<sys/socket.h>#include<string.h>#include<netinet/in.h>#include<arpa/inet.h>#include<stdlib.h>#include<pthread.h> static void usage(const char *proc){ pr

发送带参数的get请求,并解决httpclient编码问题

package cn.wemart.httppost; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.io.UnsupportedEncodingException; import java.net.URI; import java.net.URISyntaxException; import java.util.ArrayList;

如何使用HttpClient来发送带客户端证书的请求,以及如何忽略掉对服务器端证书的校验

最近要做客户端和服务器端的双向认证,在客户端向服务器端发送带证书的请求这里有一点问题,网上的例子大多都不太好使,于是找了github上httpclient源代码中的例子改造了一下,终于弄明白了 github上我参考的例子在:https://github.com/apache/httpclient/blob/4.5.x/httpclient/src/examples/org/apache/http/examples/client/ClientCustomSSL.java 下面先贴上我自己的代码(需