この文章は Salesforce 機械翻訳システムを使用して翻訳されました。詳細はこちらをご参照ください。
英語に切り替える

URL クラス

URL (Uniform Resource Locator) を表し、URL の一部へのアクセスを提供します。Salesforce インスタンス URL へのアクセスを有効にします。

名前空間

System

使用方法

組織内のオブジェクトへのリンクを作成するには、System.URL クラスのメソッドを使用します。これらのオブジェクトは、外部メール、活動、または Chatter 投稿に組み込むファイル、画像、ロゴ、レコードがあります。たとえば、次の例のように、Salesforce の基本 URL にファイル ID を連結することによって、Chatter 投稿への添付ファイルとしてアップロードされたファイルへのリンクを作成できます。
1// Get a file uploaded through Chatter.
2ContentDocument doc = [SELECT Id FROM ContentDocument 
3          WHERE Title = 'myfile'];
4// Create a link to the file.
5String fullFileURL = URL.getSalesforceBaseUrl().toExternalForm() +
6   '/' + doc.id;
7system.debug(fullFileURL);
次の例では、Salesforce レコードへのリンクを作成します。Salesforce の基本 URL とレコード ID が連結されて完全な URL が作成されます。
1Account acct = [SELECT Id FROM Account WHERE Name = 'Acme' LIMIT 1];
2String fullRecordURL = URL.getSalesforceBaseUrl().toExternalForm() + '/' + acct.Id;

この例では、現在の Salesforce サーバインスタンスの基本 URL と完全要求 URL が取得されます。次に、特定の取引先オブジェクトを指定する URL が作成されます。最後に、基本 URL と完全 URL のコンポーネントが取得されます。この例では、すべての結果がデバッグログに出力されます。
1// Create a new account called Acme that we will create a link for later.
2Account myAccount = new Account(Name='Acme');
3insert myAccount;
4
5// Get the base URL.
6String sfdcBaseURL = URL.getSalesforceBaseUrl().toExternalForm();
7System.debug('Base URL: ' + sfdcBaseURL );       
8
9// Get the URL for the current request.
10String currentRequestURL = URL.getCurrentRequestUrl().toExternalForm();
11System.debug('Current request URL: ' + currentRequestURL);        
12
13// Create the account URL from the base URL.
14String accountURL = URL.getSalesforceBaseUrl().toExternalForm() + 
15                       '/' + myAccount.Id;
16System.debug('URL of a particular account: ' + accountURL); 
17
18// Get some parts of the base URL.
19System.debug('Host: ' + URL.getSalesforceBaseUrl().getHost());   
20System.debug('Protocol: ' + URL.getSalesforceBaseUrl().getProtocol());
21
22// Get the query string of the current request.
23System.debug('Query: ' + URL.getCurrentRequestUrl().getQuery());

URL のコンストラクタ

URL のコンストラクタは次のとおりです。

Url(spec)

URL の指定した文字列表現を使用して、URL クラスの新しいインスタンスを作成します。

署名

public Url(String spec)

パラメータ

spec
型: String
URL として解析する文字列。

Url(context, spec)

指定されたコンテキスト内で指定された spec を解析して、URL クラスの新しいインスタンスを作成します。

署名

public Url(Url context, String spec)

パラメータ

context
型: URL
仕様を解析する条件となるコンテキスト。
spec
型: String
URL として解析する文字列。

使用方法

RFC2396 の「Uniform Resource Identifiers : Generic * Syntax」で説明されているように、新しい URL が、指定されたコンテキスト URL および spec 引数から作成されます。
1<scheme>://<authority><path>?<query>#<fragment>

このコンストラクタの引数についての詳細は、Java のそれぞれの URL(java.net.URL, java.lang.String) コンストラクタを参照してください。

Url(protocol, host, file)

指定されたプロトコル、ホスト、およびそのホストのファイルを使用して、URL クラスの新しいインスタンスを作成します。指定されたプロトコルのデフォルトのポートが使用されます。

署名

public Url(String protocol, String host, String file)

パラメータ

protocol
型: String
この URL のプロトコル名。
host
型: String
この URL のホスト名。
file
型: String
この URL のファイル名。

Url(protocol, host, port, file)

指定されたプロトコル、ホスト、ポート、およびそのホストのファイルを使用して、URL クラスの新しいインスタンスを作成します。

署名

public Url(String protocol, String host, Integer port, String file)

パラメータ

protocol
型: String
この URL のプロトコル名。
host
型: String
この URL のホスト名。
port
型: Integer
この URL のポート番号。
file
型: String
この URL のファイル名。

URL のメソッド

URL のメソッドは次のとおりです。

getAuthority()

現在の URL の権限部分を返します。

署名

public String getAuthority()

戻り値

型: String

getCurrentRequestUrl()

Salesforce インスタンスでの要求全体の URL を返します。

署名

public static System.URL getCurrentRequestUrl()

戻り値

型: System.URL

使用方法

要求全体の URL の例は、https://yourInstance.salesforce.com/apex/myVfPage.apexp です。

getDefaultPort()

現在の URL に関連付けられたプロトコルのデフォルトのポート番号を返します。

署名

public Integer getDefaultPort()

戻り値

型: Integer

使用方法

URL の URL スキームまたはストリームプロトコルハンドラにデフォルトのポート番号が定義されていない場合、-1 を返します。

getFile()

現在の URL のファイル名を返します。

署名

public String getFile()

戻り値

型: String

getFileFieldURL(entityId, fieldName)

添付ファイルのダウンロード URL を返します。

署名

public static String getFileFieldURL(String entityId, String fieldName)

パラメータ

entityId
型: String
ファイルデータを保持するエンティティの ID を指定します。
fieldName
型: String
AttachmentBody などのファイル項目コンポーネントの API 名を指定します。

戻り値

型: String

使用方法

例:

1String fileURL = 
2  URL.getFileFieldURL(
3    '087000000000123' ,
4    'AttachmentBody');

getHost()

現在の URL のホスト名を返します。

署名

public String getHost()

戻り値

型: String

getOrgDomainUrl()

組織の正規 URL を返します。たとえば、https://yourDomain.my.salesforce.com、または [私のドメイン] が無効な組織の場合は https://yourInstance.salesforce.com が返されます。

署名

public static System.Url getOrgDomainUrl()

戻り値

型: System.URL

getOrgDomainUrl() は、コンテキストに関係なく、組織の同じドメインを返します。このメソッドを使用して、Lightning Experience と Salesforce Classic の両方で機能するか、組織への API コールを実行するときのドメインとして機能する、レコードの URL へのリンクを構築します。

使用方法

getOrgDomainUrl() を使用して、API コードで Salesforce の REST API と SOAP API を操作します。選択リスト値セットとカスタム項目の作成やカスタマイズなどで、ユーザインターフェース API コールのエンドポイントを取得します。

getOrgDomainUrl() は、Apex コードが実行されている組織のドメイン URL にのみアクセスできます。

このメソッドで取得したドメイン URL を使用して Salesforce API を操作するのに、組織の RemoteSiteSetting は不要です。リモートサイトの設定をスキップするには、組織で [私のドメイン] が有効になっている必要があります。

この例では、Salesforce REST API を使用して、組織の制限値が取得されます。詳細は、『REST API 開発者ガイド』の「制限」を参照してください。

1Http h = new Http();
2HttpRequest req = new HttpRequest();  
3req.setEndpoint(Url.getOrgDomainUrl().toExternalForm()
4   + '/services/data/v44.0/limits');
5req.setMethod('GET');
6req.setHeader('Authorization', 'Bearer ' + UserInfo.getSessionId());
7HttpResponse res = h.send(req);

getPath()

現在の URL のパス部分を返します。

署名

public String getPath()

戻り値

型: String

getPort()

現在の URL のポートを返します。

署名

public Integer getPort()

戻り値

型: Integer

getProtocol()

現在の URL のプロトコル名 (https など) を返します。

署名

public String getProtocol()

戻り値

型: String

getQuery()

現在の URL のクエリ部分を返します。

署名

public String getQuery()

戻り値

型: String

使用方法

クエリ部分が存在しない場合は、null を返します。

getRef()

現在の URL のアンカーを返します。

署名

public String getRef()

戻り値

型: String

使用方法

クエリ部分が存在しない場合は、null を返します。

getSalesforceBaseUrl()

Salesforce インスタンスの URL を返します。

署名

public static System.URL getSalesforceBaseUrl()

戻り値

型: System.URL

現在の接続のホスト名を返します (例: https://MyDomainName.my.salesforce.comhttps://MyDomainName.lightning.force.com。または [私のドメイン] が無効な組織の場合は https://yourInstance.salesforce.comhttps://yourInstance.lightning.force.com)。

getUserInfo()

現在の URL の UserInfo 部分を取得します。

署名

public String getUserInfo()

戻り値

型: String

使用方法

UserInfo 部分が存在しない場合は null を返します。

sameFile(URLToCompare)

フラグメントコンポーネントを除き、現在の URL と指定した URL オブジェクトを比較します。

署名

public Boolean sameFile(System.URL URLToCompare)

パラメータ

URLToCompare
型: System.URL

戻り値

型: Boolean

両方の URL オブジェクトが同じリモートリソースを参照する場合は true、そうでない場合は false を返します。

使用方法

URI とフラグメントコンポーネントの構文についての詳細は、「RFC3986」を参照してください。

toExternalForm()

現在の URL を文字列表現で返します。

署名

public String toExternalForm()

戻り値

型: String