SDK for Android 開発者ガイド

プロキシの使用状況

開発者は、 SDK で実行されたすべての HTTP 接続にプロキシサーバを使用できます。

NetworkProxy クラス

NetworkProxy クラスは、プロキシサーバーの設定に使用されます。 プロキシを使用するには、ホスト名、ポート番号、および資格情報 (必要な場合)を指定する必要があります。

プロキシを有効にするには、 2 つの方法があります。

  1. MapEngine 初期化前 :
    ApplicationContext.setNetworkProxy(NetworkProxy); 
  2. MapEngine 初期化後 :
    MapEngine.getInstance().setNetworkProxy(NetworkProxy);

OkHttp

デフォルト Authenticator.setDefault(...) では、 SDK のプロキシ認証はグローバル Java API を使用して実装されます。SDK HTTP 要求のみを認証する場合、または HTTP 要求に事前認証ヘッダーを含める必要がある場合(プリエンプティブ認証)は、非効率的です。 このような場合、開発者は SDK で OkHttp の使用を有効にできます。このライブラリ では、そのまますぐにネイティブに処理されます。

OkHttp でプロキシを使用するには、次のコードを追加します。
context.useOkHttpClient();
HERE 実装の例を見つけることができます。
String hostname = "hostName";
// Can be any in range from 0 to 65535
int port = 3636;

Credentials credentials = new Credentials("username", "password");
NetworkProxy networkProxy = new NetworkProxy(hostname, port, credentials);

// OkHttp should be included as a dependency for the app (e.g. in the app/build.gradle file).
// OkHttp version 4.* is officially supported, although SDK should work with 3.* as well as with 5.* versions.
// Add the code below if you want to use proxy with OkHttp
context.useOkHttpClient();

// Choose one of the options above to enable proxy

// First option
context.setNetworkProxy(networkProxy);

// Second option
MapEngine.getInstance().setNetworkProxy(networkProxy);