retorfit 怎么添加cookie

retorfit 怎么添加cookie,第1张

你可以自定义一个RequestIntercaptor: String cookieKey = ... String cookieValue = ... RestAdapter adapter = new RestAdapter.Builder() .setRequestInterceptor(new RequestInterceptor() { @Override public void intercept(RequestFacade request) { // assuming `cookieKey` and `cookieValue` are not null request.addHeader("Cookie", cookieKey + "=" + cookieValue)} }) .setServer("") .build()YourService service = adapter.create(YourService.class)从服务器读取cookies再交给cookie manager管理: OkHttpClient client = new OkHttpClient()CustomCookieManager manager = new CustomCookieManager()client.setCookieHandler(manager)RestAdapter adapter = new RestAdapter.Builder() .setClient(new OkClient(client)) ... .build()CustomeCookieManager如下: public class CustomCookieManager extends CookieManager { // The cookie key we're interested in. private final String SESSION_KEY = "session-key"/** * Creates a new instance of this cookie manager accepting all cookies. */ public CustomCookieManager() { super.setCookiePolicy(CookiePolicy.ACCEPT_ALL)} @Override public void put(URI uri, Map<String, List<String>>responseHeaders) throws IOException { super.put(uri, responseHeaders)if (responseHeaders == null || responseHeaders.get(Constants.SET_COOKIE_KEY) == null) { // No cookies in this response, simply return from this method. return} // Yes, we've found cookies, inspect them for the key we're looking for. for (String possibleSessionCookieValues : responseHeaders.get(Constants.SET_COOKIE_KEY)) { if (possibleSessionCookieValues != null) { for (String possibleSessionCookie : possibleSessionCookieValues.split("")) { if (possibleSessionCookie.startsWith(SESSION_KEY) &&possibleSessionCookie.contains("=")) { // We can safely get the index 1 of the array: we know it contains // a '=' meaning it has at least 2 values after splitting. String session = possibleSessionCookie.split("=")[1]// store `session` somewhere return} } } } } }

工具/原料

soapUI Pro 4.5.1

方法/步骤

1

新建soapUI工程:右击左侧导航面板中的工作空间节点“Project”,选择“New soapUI Project”,输入工程名称,点击OK

2

新建TestSuite:右击Project名,选择“New TestSuite”

3

新建 TestCase:右击TestSuite名,选择“New TestCase”

4

添加数据源:右击“Test Steps”,选择“Add Step“,选择“DataSource”

5

添加HTTP请求:右击“Test Steps”,选择“Add Step“,选择“HTTP Test Request”

6

添加循环:右击“Test Steps”,选择“Add Step“,选择“DataSource Loop“

7

添加数据源数据:选择数据源类型之后进行添加,下图以excle为例

8

添加http请求数据:选择http请求类型之后进行添加,下图以POST请求为例

9

添加loop:将数据源和http请求关联

10

编辑完成后运行测试case进行正确性的测试,为了保证运行的正确性,可以添加断言对结果进行检查

11

当显示的测试结果为FINISHED时,

1 第一次请求,服务器在response中增加属性Set-Cookie(可以理解为,分配了一个sessionId给浏览器)

2 浏览器保存sessionId到本地cookies

3 第二次请求(刷新页面),浏览器在请示头中增加cookies属性

4 服务器通过cookies属性知道这是同一个session,因为服务器保存了所有的sessionId(重启就清空了)


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/bake/7967564.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-04-12
下一篇2023-04-12

发表评论

登录后才能评论

评论列表(0条)

    保存