restlet2.1 学习笔记(三) 获取简单请求参数
来源:互联网 发布:网络光纤哪个品牌好 编辑:程序博客网 时间:2024/05/21 20:19
如果是get请求,获取查询参数的方法如下:
@Getpublic String play(){Form form = getRequest().getResourceRef().getQueryAsForm() ;//获取查询参数String movie = form.getFirstValue("movie");//获取key=movie的参数值return "电影正在播放,电影名称:" + movie;}
然后客户端可以访问http://localhost:8888/?movie=xxx测试。
如果是通过restlet客户端调用。代码如下:
@Testpublic void test01() throws IOException{ClientResource client = new ClientResource("http://localhost:8888/?movie=xxx");Representation result = client.get() ;//调用get方法System.out.println(result.getText()); }
如果是Post请求。获取请求参数的方式就有些区别了。
服务端可以如下的方式定义Resource方法
@Postpublic String pause(String movie){return movie + "暂停...";}
@Testpublic void test02() throws IOException{ClientResource client = new ClientResource("http://localhost:8080/"); Representation result = client.post("速度与激情6") ;//调用post方法System.out.println(result.getText()); }
注意:
浏览器发送get请求可以直接在地址栏输入url?name=xx这样如访问服务端的资源
但是post请求是不行的。例如如下的表单。提交后,服务端返回的内容为: movie=xxx暂停
其实应该返回内容: xxx暂停 才正确
<form action="http://localhost:8080/" method="post" target="_blank"><input name="movie" value="xxx" /> <input type="submit" value="Post请求" /> </form>
其实Post请求服务端方法的参数获取的是客户端通过post请求发送过来的请求体。跟参数名称没有关系。客户端也不需要知道参数定义的名称,如果客户端发送post请求带有参数,直接在请求体中加入参数值就可以了,并不需要参数名
浏览器发送post请求时查询参数不是直接在url中,而是在请求体中。 而浏览器发送post的请求体的格式就是name1=value1&name2=value2这样的格式。 所以上面用浏览器发送post请求时获取的参数格式不正确- restlet2.1 学习笔记(三) 获取简单请求参数
- restlet2.1 学习笔记(四) 获取、返回XML类型参数
- restlet2.1 学习笔记(六) 获取、返回JSON类型参数
- restlet2.1 学习笔记(一) 入门
- restlet2.1 学习笔记(一) 入门
- restlet2.1 学习笔记(二) 分别处理Get Post Put请求
- restlet2.1 学习笔记(二) 分别处理Get Post Put请求
- restlet2.1 学习笔记(九)简单验证客户端用户名与密码
- restlet2.1 学习笔记(五)使用契约优先方式
- restlet2.1 学习笔记(十二)使用Tomcat部署RestletService
- restlet2.1 学习笔记(七) 与Freemarker结合返回Html视图
- restlet2.1 学习笔记(八) 提供接口供客户端使用。
- restlet2.1 学习笔记(十)使用自定义SecretVerifier验证用户名与密码
- restlet2.1 学习笔记(十一)为用户分配角色,并使用角色控制权限。
- restlet2.0学习--请求超时的设置
- Spring学习笔记<三> 获取请求对象和请求头
- SpringMVC学习(三)映射请求参数&请求参数
- Spring学习笔记<二> 获取请求参数和Cookie
- 第四周组队赛130804
- 一道面试题
- 动态库相关问题解决方法
- javaScript的 全等 和 非全等
- Exadata上的多主机管理工具——dcli
- restlet2.1 学习笔记(三) 获取简单请求参数
- Android 的提权 (root) 原理是什么?
- Cognos 8.3 IE 兼容性问题
- Windows Azure中国区网络性能初评
- js调用OCX插件兼容性浏览器
- poj 1061 青蛙的约会 扩展欧几里得算法
- 五种JSP页面跳转方法详解
- win7 程序(右下角)小图标应该如何设置【乡巴佬】
- python使用QtWebKit代码记录