# smartpost
**Repository Path**: bieber/smartpost
## Basic Information
- **Project Name**: smartpost
- **Description**: 该项目是一个HTTP请求客户端代理,可以实现录入请求信息管理,请求组合,将会自动保存请求服务返回的cookie,当组合多个请求的时候,如何请求返回的cookie信息将会在后面的请求中返回给服务端。是为了方便给restful接口进行测试而设计开发的。当前只满足基本功能,后续将会继续再次基础上面进行完善。
- **Primary Language**: Java
- **License**: Apache-2.0
- **Default Branch**: master
- **Homepage**: http://smartpost.oschina.mopaas.com/
- **GVP Project**: No
## Statistics
- **Stars**: 8
- **Forks**: 4
- **Created**: 2014-11-05
- **Last Updated**: 2025-08-13
## Categories & Tags
**Categories**: web-dev-toolkits
**Tags**: None
## README
#smartpost
该项目是一个HTTP请求代理工具,可以实现录入请求信息管理,请求组合,将会自动保存请求服务返回的cookie
当组合多个请求的时候,如何请求返回的cookie信息将会在后面的请求中返回给服务端。
是为了方便给restful接口进行测试而设计开发的。当前只满足基本功能,后续将会继续再次基础上面进行完善。
#主要功能介绍
##基础信息的录入
该部分功能主要是将请求信息录入到smartpost中,录入的信息包括http请求头部信息,请求方式POST/GET以及请求的参数。
###请求参数设置说明
smartpost对请求参数支持form表达提交的数据,该参数是键值对的形式,如果是POST那么将会以key1=value1的形式提交到服务器端,如果是GET形式,则键值对参数追加到请求地址后面。除了form表单参数提交外,还支持json,xml,html以及text的格式参数。如果选中json,那么发送给服务器端的Content-type就是application/json;charset=UTF-8,依次类推:xml则是application/xml;charset=UTF-8;text:text/plain;charset=UTF-8;html:text/html;charset=UTF-8。所以选中非form的参数类型以后,不需要再在header里面设置Content-type属性,除非你有特殊的需求。
##场景
我们在开发过程中,一般为了调试一个接口,可能需要发起多个url请求,比如一个查看商品的流程:
1. 首先需要打开电商网站的首页
2. 查看商品
这里涉及到至少两个个url的请求(首页,商品)。而且这两个请求在smartpost里面可以组合成一个场景,可以叫做【查看商品】。你可以执行该场景,那么将会依照设定的URL请求循序来执行请求,并返回执行结果。
smartpost在这里所做的只是一个请求的组合。但是这样还不够,可以看到上面上个请求存在一定的关系。我这里先假设这个电商网站的地址是(假设这个请求叫做request_index)
> http://www.smpmall.com
上面是个首页的地址,打开首页将会看到很多的商品。我们一般会选择一个商品,我不如再假设该电商网站首页布局是这样的: