私がやろうとしているのは、NSIS インストーラーのカスタム ページ内から、クエリ文字列または HTTP POST を含む HTTP GET を Web サービスに送信することだけです。
問題は、ほとんどのプラグインがファイルをアップロード/ダウンロードできることですが、単純にサービスを呼び出して応答を返すことはできません。使用する推奨プラグインは NsisUrlLib です。これを試してみましたが、単純な GET リクエストで動作しますが、URL に次のようなクエリ文字列パラメーターがあると失敗し、エラーがスローされます。
NsisUrlLib::UrlOpen /NOUNLOAD "http://tc.hwidev.com?var=value"
Pop $connectResult
NSISdl、INetC、およびその他のプラグインはクエリ文字列で動作しますが、ファイルのアップロード/ダウンロードにのみ使用できます。
ExecDos プラグインを使用して、次のようにコマンド ラインから cURL.exe を呼び出してみました。
ExecDos::exec /TOSTACK "curl" "http://tc.hwidev.com"
Pop $connectResult
しかし、NSIS に渡された URL から返されたデータを取得する方法がわかりません。上記のコードは、おそらく CURL からの戻りコードを表す整数を $connectResult に返すだけです。URL から返された実際の HTML を NSIS スタックまたは変数に取得するにはどうすればよいですか?
または、これを達成するためのより良い方法を誰かが推奨できますか? Web サービスの呼び出しは非常に基本的なことのように思えるので、何千人もの人々が既にこれを理解しているはずです。