「System.CalloutException: Read timed out」エラーについて

概要

Apexコールアウトがタイムアウトになった際に発生するエラーです。

デフィルトだと、コールアウトは10秒間レスポンスが帰ってこないとでタイムアウトする仕様となっています。

回避策

setTimeoutメソッドを用いてタイムアウトまでの時間を延長することが可能です。

メソッドの引数はミリ秒単位で、1(1ミリ秒)~60000(60秒)までの値を設定することができます。

サンプルコードは下記の通り。

以下のコードではタイムアウトの時間を30000ミリ秒(30秒)に設定しています。

Http http = new Http();
HttpRequest request = new HttpRequest();

request.setEndpoint('エンドポイントURL');
request.setMethod('POST');
request.setHeader('Content-Type', 'application/json');
request.setHeader('Authorization', 'APIトークン1');
request.setHeader('x-api-key', 'APIキー');
request.setBody(jsonS);
request.setTimeout(30000);

HttpResponse response = http.send(request);

Salesforce

Posted by regardie