restclient发送json_如何使用restclient来发送post请求参数

本文介绍了如何使用RESTClient工具进行POST请求,特别是发送JSON数据。通过选择POST方法,设置Body为String body并指定Content-Type为application/x-www-form-urlencoded;charset=UTF-8,可以传递请求参数。示例包括向Spring MVC控制器发送JSON字符串和对象,以及接收和处理这些请求的方法。
摘要由CSDN通过智能技术生成

Web程序:使用GET和POST方法发送请求   首先利用MyEclispe+Tomcat写好一个Web程序,实现的功能就是提交用户信息:用户名和年龄,使用GET和POST两种提交方式。   用浏览器打开:     不管以哪一种方式,提交以后显示如下页面,将提交的信息再显示出来。

我喜欢使用 restclient 来测试我的 REST 风格的应用程序。一般我就是用GET方法,今天用到了POST方法。POST传递参数应该放在body里面,对长度没有限制。不像GET对URL的限制是1024字节。

运行 restclient ,点选Method选项卡的“POST”方法。然后选择Body选项卡,下下拉列表中选择”String body“的选项,配置上 application/x-www-form-urlencoded;charset=UTF-8 。再出现的body里面写入字符串,也就是你的请求条件,如:query=xpsF

这样就可以传递post的参数了。

java代码如下:springmvc写的

@RequestMapping(value = "/test", method = { RequestMethod.GET,

RequestMethod.POST })

public void test(HttpServletResponse response, @RequestBody String message) {

//注意这里的:@RequestBody String message

LOGGER.debug(String.format("receive message %s", message));

Map map = Maps.newHashMap();

try {

map.put("result", message);

Tools.printToJson(JSON.toJSONString(map), response);

} catch (Exception e) {

LOGGER.error(e.getMessage(), e);

}

}

如果传递的是一个对象给springmvc,如(代码不全):

public class EntitySubscribe {

private Long entityId;

private String entityCode;

private String entityName;

private String teamCode;

private SubscribeUsesEnum subscribeUsesEnum;

private Date gmtCreate;

private Date gmtModify;

private Long flowId;

private OnOffEnum state;

private String reason;

private List uses;

}

mvc代码:

@ResponseBody

@RequestMapping(value = "/subscribeEntity", method = { RequestMethod.POST })

public AjaxResult subscribeEntity(@RequestBody EntitySubscribe entitySubscribe, @CookieValue(

value = Const.COOKIE_USER_KEY, required = false) String userId) {

LOGGER.debug(this.getClass().getName() + "#subscribeEntity");

long entityId = entitySubscribe.getEntityId();

String teamCode = entitySubscribe.getTeamCode();

String subscribeUses = Joiner.on(",").skipNulls().join(entitySubscribe.getUses());

String reason = entitySubscribe.getReason();

Preconditions.checkArgument(StringUtils.isNotBlank(teamCode));

Preconditions.checkArgument(StringUtils.isNotBlank(subscribeUses));

Preconditions.checkArgument(StringUtils.isNotBlank(reason));

Preconditions.checkArgument(StringUtils.isNotBlank(userId));

return entitySubscribeService.subscribeEntity(entityId, teamCode, subscribeUses, reason, userId);

}

服务器端代码 [java]  package org.xiazdong.servlet;    import java.io.IOException;  import javax.servlet.ServletException;  import javax.servlet.annotation.WebServlet;  import javax.servlet.http.HttpServlet;  import javax.servlet.http.HttpSe

使用restclient的请求为 :POST

String body 为: application/json; charset=UTF-8

body内容为:{"entityId":343,"reason":"for test测试","teamCode":"cdc","uses":[1,2,3]}

这样后台就能收到对象了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值