TNetHTTPClient のProxySettingsの設定パラメータに関する注意
概要
TNetHTTPClient コンポーネントを利用し、プロキシ経由で要求を送信する方法については、docwikiのHTTP クライアントの使用(プロキシ経由で要求を送信する)でProxySettingsに指定するパラメータの具体的なコード例が紹介されています。
これらのコード例のうち、
NetHTTPClient1.ProxySettings := TProxySettings.Create('192.168.1.1', 8080, 'MyUserName', 'MyPassword');
上記のコードを実行すると、実際にプロキシサーバーとの通信前に「Invalid URL: "192.168.1.1"」というエラーが発生します。
このエラーの原因は、ProxySettings に指定するパラメータのうち、Schemaに相当するパラメータが空なのが理由です。そのため、正しく実行するためには、以下のようなコードに修正してください。
NetHTTPClient1.ProxySettings := TProxySettings.Create('192.168.1.1', 8080, 'MyUserName', 'MyPassword',’http’);
※プロキシサーバーへhttps接続を行いたい場合は、上記の部分に’https’を指定してください。
またdocwikiでHTTP クライアントがシステム プロキシ設定をどう扱うかをプラットフォームごとにまとめた情報があり、そのうちWindowsでシステム プロキシ設定を無視するには、HTTP クライアント用のプロキシ設定を作成し、URL にhttp://directを指定しますという記載があります。
しかしながら正確にはhttp://directではなく、http://direct:80と指定しなければならず、docwikiには、これを指定する具体的なコード例が載っていないため、補足情報として紹介します。
TProxySettingsでhttp://direct:80を指定するコード例は、以下の通りです。
NetHTTPClient1.ProxySettings := TProxySettings.Create('http://MyUserName:MyPassword@direct');
もしくは、
NetHTTPClient1.ProxySettings := TProxySettings.Create('direct', 80, 'MyUserName', 'MyPassword','http');
のようにパラメータを指定してください。