PhpXmlRpc の名前空間付きクライアントは、フォワードプロキシ経由の経路のために setProxy を公開しています。

use PhpXmlRpc\Client;

$client = new Client('https://rpc.example/service');
$client->setProxy('proxy.example', 8080);

コンストラクタで XML-RPC サービスを選び、setProxy に中間プロキシのホストとポートを渡します。HTTP プロキシ一覧 にある HTTP アドレスは、プロキシ用アカウントを必要としない許可済みの公開 XML-RPC エンドポイント経路にそのまま使えます。選択したトランスポートが必要な方式に対応していれば、プロキシのユーザー名、パスワード、認証方式の引数も受け付けます。

アプリケーションの XML-RPC メッセージはこの設定済みインスタンス経由で送信し、障害はライブラリ標準の API で処理します。トランスポートの HTTPS 証明書検証は無効にしないでください。

フレームワークが管理するクライアントの場合

CodeIgniter 3 に組み込まれた XML-RPC ライブラリは別のクラスです。その server メソッドは宛先を設定しますが、PhpXmlRpc の例は $this->xmlrpc が setProxy を提供することを示していません。

実際に生成されたクラスとトランスポートを特定し、そのクライアントのプロキシ用インターフェースを使いつつ、可能な範囲でフレームワークのメッセージ組み立てを保ちます。

関連記事