TNetHTTPClient のProxySettingsの設定パラメータに関する注意

提供: Support
移動先: 案内検索

概要

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');

のようにパラメータを指定してください。