簡體   English   中英

即使外部 API 發出請求,okHTTP3 也可以進行攔截嗎?

[英]Can okHTTP3 make interceptions even when an external API is making the requests?

我有一個關於 okHTTP 的一般性問題,我希望有人能幫我解決問題。 我想攔截來自我的應用程序的所有傳出網絡請求的 HTTP 標頭。 這是 okHTTP github 上提供的示例:

OkHttpClient client = new OkHttpClient.Builder()
    .addNetworkInterceptor(new LoggingInterceptor())
    .build();

Request request = new Request.Builder()
    .url("http://www.publicobject.com/helloworld.txt")
    .header("User-Agent", "OkHttp Example")
    .build();

Response response = client.newCall(request).execute();
response.body().close();

我的問題是我使用外部 API 在我的應用程序中發出我需要的請求。 這是否使我無法攔截 HTTP 標頭,因為它是構建請求的 API 而不是我? 如果是這樣,有沒有辦法解決這個問題? 謝謝你。

最終總是有可能的。 1 個好答案,3 個壞答案,取決於它的重要性...

  1. API 通常會提供對它構建的默認 OkHttpClient 進行更改的訪問權限,以便您可以設置諸如代理之類的東西。 首先嘗試這樣做。

您可能不想做的不那么干凈的選項。

  1. 您可以自己進行 MITM 攻擊客戶端。 例如像https://www.charlesproxy.com/
  2. 您可能可以使用反射進入庫的內部 API 並更改客戶端,但這很脆弱,並且在技術上仍然是不可能的。
  3. 你可以通過java字節碼代理攻擊它https://github.com/yschimke/agentdebug

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM