【RequestContext】關於RequestContext的一些小心得


版權聲明:隨意轉載,注明出處 https://blog.csdn.net/River_Continent/article/details/77511389
后台傳參,一直是一個比較重要的地方,如果涉及Web,我們可以用RequestContext來幫我們傳遞參數,即使在不同的頁面,不用的方法,只要沒有新的請求產生,我們都可以用RequestContext;但是,大前提是:
沒有新的請求,
沒有新的請求,
沒有新的請求;
重要的事情說三遍~

1、RequestContext;
我們只有通過登錄,才能獲取從頁面拿過來的請求上下文(RequestContext):

RequestContext requestContext = securityLogin.login(info);
1
info是我們登錄需要傳遞的參數,這里的Info是一個對象,包括賬戶和密碼;你也可以自己寫一個方法,把賬戶和密碼分別傳進去,然后做模擬登錄;這樣,登錄過的requestContext才能有實質性的東西;
否則:
我們也可以創建一個新的RequestContext,來裝載我們的請求參數;

RequestContext requestContext = new RequestContext();
1
但是,這里的requestContext里面都是null;

2、globalData();
requestContext里面有一個非常重要的方法,就是globalData(),這里我們可以通過它來傳遞參數,這個也是本帖子的核心;顧名思義,globalData,全局數據,就是同一個請求中的數據,都可以互通往來;

①放數據:

requestContext.globalData("name",name);
1
通過鍵值對的方式來存入數據,key-value鍵值對的形式來存入數據;前面是key,后面是值;
②取數據:
如果別的頁面存入了數據,我這個頁面要拿過來調用怎么辦,這時候就直接通過鍵(key)來取值;

requestContext.globalData("name");
1
很方便;(別忘了大前提,沒有新的請求產生)
一般情況,如果在requestContext.globalData();附近報null的錯,或者對象的size,length不能為null,那么很有可能就是沒有存值,取出來的值是null,進而數據類型不匹配;要么就是取值的時候,key跟原來要取值的key對不上,不是單詞拼寫錯誤,就是大小寫錯誤,要么就是壓根忘了存值,直接取值;這個都要避免;還要注意,取出來的數據是Object類型,取出來之后,還要進行數據類型轉換;

3、基本內容簡介
requestContext有8個基本的內容,分別是:
①url:請求的地址,到底去哪里獲取請求的上下文;
②timeout:超時鏈接的上限,默認是30000ms;
③method:請求的方法,到底是GET請求,還是POST請求,到底是做自行車,還是做卡車,看具體情況定;
例如:

.method(Connection.Method.POST)
1
④requestBody():可以把其它的一些參數以字符串等的形式放入請求體中;
⑤cookies:這個是最重要的參數之一
可以用Jsoup.connect再接下面的代碼:
例如:

.cookies(requestContext.cookies())
1
也可以獨立寫:
例如:

Map<String,String> cookies = response.cookies();
requestContext.cookies(cookies);
1
2
⑥header:請求頭,可以設置上下文的類型,請求攜帶的其它信息等,可以類比html中的

<head>
<meta charset="utf-8">
<title>標題</title>
</head>
1
2
3
4
例如:

.header("Content-Type","application/x-www-form-urlencoded")
.header("X-Requested-With","XMLHttpRequest")
1
2
⑦globalData():最重要的方法之一,用來傳遞參數,上面講了好多,這里參照上面即可;
⑧requestDatas():自己百度下;
---------------------
作者:陶洲川
來源:CSDN
原文:https://blog.csdn.net/River_Continent/article/details/77511389
版權聲明:本文為博主原創文章,轉載請附上博文鏈接!


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM