中文字幕第五页-中文字幕第页-中文字幕韩国-中文字幕最新-国产尤物二区三区在线观看-国产尤物福利视频一区二区

怎么在Android中使用OkHttp進行重定向攔截處理

今天就跟大家聊聊有關怎么在Android中使用OkHttp進行重定向攔截處理,可能很多人都不太了解,為了讓大家更加了解,小編給大家總結了以下內容,希望大家根據這篇文章可以有所收獲。

從事川西大數據中心,服務器租用,云主機,雅安服務器托管,空間域名,CDN,網絡代維等服務。

步驟:

  1. 自己做POST請求,并且不讓它自動重定向

  2. 我們拿到POST請求返回來的響應,獲取對應的Set-Cookie字段的內容

  3. 將該對應的內容添加到GET請求的Cookie請求頭字段中,然后做GET請求

  4. 獲取到的GET請求的響應體就是我們登陸后的網頁內容了,如果是靜態網頁可以通過Jsoup解析自己想要的信息了

我們需要通過抓包或者Chorme瀏覽器自帶的請求查看功能來查看POST請求提交的表單是怎樣的。Chorme按F12即可

怎么在Android中使用OkHttp進行重定向攔截處理

輸入帳號密碼點擊登錄即可

怎么在Android中使用OkHttp進行重定向攔截處理

點擊登陸后我們可以看到,控制面板出現了一堆訪問的記錄,第一個就是我們要找的,第一個的Status標志是302,302是重定向的意思。我們點擊(pass.asp)這個請求,然后查看它的POST的請求頭(點擊Headers)。

怎么在Android中使用OkHttp進行重定向攔截處理

我們看到了一堆的Set-Cookie字段,字段對應的內容就是我們要攜帶做GET請求的

怎么在Android中使用OkHttp進行重定向攔截處理

同時我們可以看到POST提交的表單內容,有些網站的提交參數是經過加密的,如果要做通用的,我們需要找到它加密的方法,做同樣的加密處理。

接下來使用OkHttp進行操作

由于OkHttp提供了自動攜帶Cookie進行請求的功能,于是我們可以很方便地進行處理了。

final OkHttpClient client = new OkHttpClient().newBuilder()
        .followRedirects(false) //禁制OkHttp的重定向操作,我們自己處理重定向
        .followSslRedirects(false)
        .cookieJar(new LocalCookieJar())  //為OkHttp設置自動攜帶Cookie的功能
        .build();

//CookieJar是用于保存Cookie的
class LocalCookieJar implements CookieJar{
  List<Cookie> cookies;
  @Override
  public List<Cookie> loadForRequest(HttpUrl arg0) {
     if (cookies != null)
        return cookies;
      return new ArrayList<Cookie>();
  }

  @Override
  public void saveFromResponse(HttpUrl arg0, List<Cookie> cookies) {
    this.cookies = cookies;
  }
  
}

為什么設置CookieJar就能自動攜帶Cookie了呢?給你看一段OkHttp的源碼就知道了。

/**
  * Populates request with defaults and cookies.
  *
  * <p>This client doesn't specify a default {@code Accept} header because it doesn't know what
  * content types the application is interested in.
  */
 private Request networkRequest(Request request) throws IOException {
  Request.Builder result = request.newBuilder();

  //如果CookieJar的Cookie不為空,則設置Cookie字段
  List<Cookie> cookies = client.cookieJar().loadForRequest(request.url());
  if (!cookies.isEmpty()) {
   result.header("Cookie", cookieHeader(cookies));
  }

  return result.build();
 }

于是接下來我們就是做POST請求了

final OkHttpClient client = new OkHttpClient().newBuilder()
        .followRedirects(false)
        .followSslRedirects(false)
        .cookieJar(new LocalCookieJar())
        .build();
    //構造一個POST請求
    RequestBody body = new FormBody.Builder().add("UserStyle", "student")
        .add("user", "xxx").add("password", "xxx").build();
        
    Request request = new Request.Builder().url("http://222.195.8.201/pass.asp").post(body).build();
    
    client.newCall(request).enqueue(new Callback() {
      
      @Override
      public void onResponse(Call call, Response response) throws IOException {
        /**
         * 如果不用CookieJar,那么就要自己去解析返回的Set-Cookie字段,解析之后通過addHeader("Cookie", cookie)
         * 添加Cookie請求頭
         */
//       List<String> cookies = response.headers("Set-Cookie");
//       String cookie = "";
//       for(int i=cookies.size()-1; i>=0; i--){
//         cookie = cookie+ cookies.get(i).replace("path=/", "") + " ";
//       }
        
        //做GET請求
        Request redirectRequest = new Request.Builder().url("http://222.195.8.201/student/asp/Select_Success.asp")
//          .addHeader("Cookie", cookie)
           .build();
        //拿到登陸后操作的某個網頁的內容
        Response response2 = client.newCall(redirectRequest).execute();
        String result = response2.body().string();
        System.out.println(result);
      }
      
      @Override
      public void onFailure(Call arg0, IOException arg1) {
        
      }
    });

Android是什么

Android是一種基于Linux內核的自由及開放源代碼的操作系統,主要使用于移動設備,如智能手機和平板電腦,由美國Google公司和開放手機聯盟領導及開發。

看完上述內容,你們對怎么在Android中使用OkHttp進行重定向攔截處理有進一步的了解嗎?如果還想了解更多知識或者相關內容,請關注創新互聯行業資訊頻道,感謝大家的支持。

當前名稱:怎么在Android中使用OkHttp進行重定向攔截處理
文章起源:http://www.2m8n56k.cn/article24/gposje.html

成都網站建設公司_創新互聯,為您提供虛擬主機移動網站建設網站制作企業網站制作域名注冊網站設計

廣告

聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:[email protected]。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯

搜索引擎優化
主站蜘蛛池模板: 欧美久在线观看在线观看 | 性做久久久久久 | 日本www在线视频 | 欧美最大成人毛片视频网站 | 三级理论手机在线观看视频 | 久久久久久久国产精品毛片 | 可以免费观看欧美一级毛片 | 热99re久久精品这里都是免费 | 国产一区二区三区高清视频 | 真人一级毛片国产 | 久久毛片久久毛 | 日本成人一级片 | 国产精品久久久久a影院 | 国产成人午夜性a一级毛片 国产成人午夜性视频影院 国产成人香蕉久久久久 | 97国产成人精品免费视频 | 国产欧美日韩在线观看一区二区三区 | 另类专区另类专区亚洲 | 日韩一区二区在线观看 | 19+韩国主播青草vip视频 | 久久免费网 | 精品在线视频免费观看 | 看黄网址 | 波多野结衣在线免费视频 | 日本一级大黄毛片免费基地 | 国产亚洲综合精品一区二区三区 | 欧美a级完整在线观看 | 亚欧成人一区二区 | 国产激情视频在线播放 | aaaaaa精品视频在线观看 | 国产中文字幕在线播放 | 欧洲一级毛片免费 | 欧美成网 | 一本久道综合久久精品 | 香港av三级 | 国产一区欧美二区 | 国产成人亚洲日本精品 | 久久久9999久久精品小说 | 欧美国产日韩在线 | 日韩在线国产 | 欧美在线观看一区 | 能在线观看的一区二区三区 |