91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

如何實現一個屬于自己的查成績app

發布時間:2021-12-22 15:12:11 來源:億速云 閱讀:156 作者:柒染 欄目:互聯網科技

這期內容當中小編將會給大家帶來有關如何實現一個屬于自己的查成績app,文章內容豐富且以專業的角度為大家分析和敘述,閱讀完這篇文章希望大家可以有所收獲。

一、準備工作

準備工具:電腦

軟件:Fiddler 4(哪個都行,只要抓包)

打開我們學校的教務網站http://202.192.240.29/login!welcome.action

如何實現一個屬于自己的查成績app

點擊驗證碼框,會向服務器發送get請求,這是我抓到的請求內容

如何實現一個屬于自己的查成績app

服務器返回的是一個驗證碼

如何實現一個屬于自己的查成績app

當我輸入驗證碼,然后點擊登錄,這是我抓到的包

如何實現一個屬于自己的查成績app

這里可以看到請求的內容是account=311500xxxx&pwd=xxxxxx&verifycode=84ga

這里不用多講吧,account是學號,pwd當然是password啦,verifycode肯定是驗證碼啦。

當我們登錄成功,服務器回返回一個json數據,成功的code是0,message是“登錄成功”,如果錯誤的話,code是-1,message會提示你錯誤的方式。

然后我們點擊成績查詢。

如何實現一個屬于自己的查成績app

這是我抓到的數據,這里服務器同樣返回的是json數據,這很有利于我們的解析。

       到這里,我們的前期準備工作已經完成,下一步,干嘛呢?

二、主要思路

    這里我開始介紹,我的主要思路。當然這里需要你對http協議有那么一點的認識,強烈推薦一本快速入門的書《圖解http》。

       我們可以看到,我每次發送post請求或者get請求時都會有這么一個東西Cookie:JSESSIONID=BCA9EDDA29865D38E7D7344D975D78A6,這是啥東西呢?因為http協議是無狀態的,那么我們要怎么確認當前用戶就是剛剛登陸的用戶呢?所以這里就有了JSESSIONID,要是不明白,請百度(JSESSIONID),然后你看看應該就會明白了,這里假設你已經明白了。

   這個JSESSIONID是當我們第一次打開教務網站的時候,服務器給我們分配的。有圖有真相,看圖。

如何實現一個屬于自己的查成績app

       這里的Set-Cookie: JSESSIONID=428F8358B38BB1C1B9B344E5D1D79DA2;Path=/; HttpOnly,我們主要關心這個JSESSIONID=428F8358B38BB1C1B9B344E5D1D79DA2(這里為啥跟上面不一樣呢,因為我重新打開了瀏覽器,系統又重新給我分配的),這里的set-cookie就給我們設置了JSESSIONID,這里就是我們當前登錄的唯一標識,所以我們每次發送請求的時候都要帶上它。

 

 

三、具體實現(Java實現)

 

       class myVerifyThread extends Thread{

        @Override

        public void run() {

            try {

                HttpClient httpClient = newDefaultHttpClient();

                HttpGet httpGet = new HttpGet(“http://202.192.240.29/yzm?d=1515824347343”);

               httpGet.setHeader("Accept","*/*");

               httpGet.setHeader("Connection","keep-alive");

               httpGet.setHeader("User-Agent","Mozilla/5.0 (Windows NT10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/63.0.3239.132Safari/537.36");

                HttpResponse httpResponse =httpClient.execute(httpGet);

                if(httpResponse.getStatusLine().getStatusCode() == 200) {

                    SaveCookies(httpResponse);//保存獲得的JSESSIONID

                    // 請求和響應都成功了

                    byte[] bytes;

                    bytes =EntityUtils.toByteArray(httpResponse.getEntity());

                    Message message=new Message();

                    Bundle bundle=new Bundle();

                   bundle.putByteArray("verify",bytes);

                    message.setData(bundle);

                    message.what=1001;

                   handle.sendMessage(message);//獲取驗證碼

                }

            } catch (Exception e) {

                e.printStackTrace();

            }

        }

 

這里是想服務器發送get請求,也就是獲得驗證碼。

這里把獲得驗證碼發送出去。

如何實現一個屬于自己的查成績app

這里把驗證碼顯示出來。

   下面這個函數是保存從服務那邊獲得的JSESSIONID。

如何實現一個屬于自己的查成績app

然后我們實現登錄功能。

如何實現一個屬于自己的查成績app

這里我們再把JSESSIONID給添加到請求頭那里去,這樣我們就完美欺騙了服務器,我就是剛剛第一訪問你的那個我。(其他的頭可以根據抓包那里的頭來設置)

如何實現一個屬于自己的查成績app

這里解析服務器返回我們的json數據。

如何實現一個屬于自己的查成績app

到這里大家應該都懂了吧。

   具體思路就是給服務器發送http請求,然后保存服務器返回的JSESSIONID,然后我們訪問的時候都要把JSESSIONID添加到post請求頭那里,這樣我們就可以訪問了。

如何實現一個屬于自己的查成績app

如何實現一個屬于自己的查成績app

    這是效果圖。

上述就是小編為大家分享的如何實現一個屬于自己的查成績app了,如果剛好有類似的疑惑,不妨參照上述分析進行理解。如果想知道更多相關知識,歡迎關注億速云行業資訊頻道。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

app
AI

镇宁| 龙海市| 开远市| 阳泉市| 防城港市| 饶河县| 教育| 府谷县| 文成县| 买车| 天台县| 玛纳斯县| 宁德市| 阳西县| 军事| 安溪县| 柯坪县| 英超| 马鞍山市| 吉水县| 修文县| 紫金县| 巧家县| 贵港市| 安仁县| 临沭县| 莲花县| 军事| 聂拉木县| 桂阳县| 确山县| 宜章县| 西乌珠穆沁旗| 贵南县| 临泉县| 景宁| 合江县| 永修县| 隆子县| 呼玛县| 崇左市|