|
|
2022年8月10日 |
|
今度はcUrlを使って、実際に問い合わせてみましょう。cUrlはUbuntuに標準的にインストールされていますが、今回はwindows上で動くcUrl for windowsを使います。cUrl for windowsは、コマンドの発行先はUbuntuですが、操作はすべてWindows上でできるソフトウェアです。Windowsで動くcUrlを使う理由は、Windows上のテキストファイルを読み込ませたりしたいためです。勿論、Linuxに慣れている人は、Linux上で直接テキストファイルを操作してもかまいません。Windowsで気をつけるのは、WindowsのPowerShellには既にcurlコマンドがあるという点です。実はこのcurlコマンドはcUrlっぽいですが、実際にはcUrlとは似て非なるものです。PowerShellのcurlコマンドは、実は内部的にwindowsコマンドの"Invoke-WebRequest"というコマンドが実行されているので、動きやシンタックスがかなり違うと考えてください。各種マニュアルなどは、通常の(Linuxの)cUrlを前提としていますから、PowerShellのcurlコマンドをそのまま使う場合は自分で翻訳しながら操作する必要がありますし、かなり大変な作業です。 まずは、cUrl for WindowsをWebサイト からダウンロードします。筆者が使ったcUrl for windowsはインストーラーが付属していないzipファイルでしたので、適当な場所にzipファイルを展開し、path環境変数にcurl.exeのあるディレクトリを追加しました。因みに、環境変数はWindowsで「設定」を開いて"環境変数"で検索すると「環境変数」という設定ウインドウが見つかりますので開きます。そこでPathという変数をクリックして「編集」をクリックすると、pathを追加するウインドウが開きます。 最後に、Invoke-WebRequestに対するエリアスを以下のPowerShellのコマンドで削除します。 |
|
PS C:\Users\owner> remove-item -path alias:curl PS C:\Users\owner> |
|
PowerShellのエリアスは、 PowerShellを立ち上げるたびに初期値に戻るので、毎回Aliasの削除をする必要があります。 cURL for Windowsがちゃんと動いているかどうか、確認しましょう。PowerShellで以下と打ってみてください。 curl --version 次のようなレスポンスがあれば正常です。 |
|
PS C:\Users\owner> curl --version curl 7.79.1 (Windows) libcurl/7.79.1 Schannel Release-Date: 2021-09-22 Protocols: dict file ftp ftps http https imap imaps pop3 pop3s smtp smtps telnet tftp Features: AsynchDNS HSTS IPv6 Kerberos Largefile NTLM SPNEGO SSL SSPI UnixSockets PS C:\Users\owner> |
|
次に、Orionがちゃんと動いているかどうか、cUrl for windowsからOrion にメッセージを送ってみて確認しましょう。以下のように、Orionからバージョンを取得してみましょう。以下と打ってください。 curl -X GET 'http://localhost:1026/version' そうすると、次のようなレスポンスがあれば正常です。 |
|
PS C:\Users\owner> curl -X GET 'http://localhost:1026/version' { "orionld version": "post-v1.1.0", "orion version": "1.15.0-next", "uptime": "0 d, 0 h, 0 m, 17 s", "git_hash": "nogitversion", "compile_time": "Thu Aug 4 16:53:03 UTC 2022", "compiled_by": "root", "compiled_in": "", "release_date": "Thu Aug 4 16:53:03 UTC 2022", "doc": "https://fiware-orion.readthedocs.org/en/master/" } PS C:\Users\owner> |
|
このコマンドは、localhostの1026番のポートに対して、versionの情報をGETしなさいという意味になります。localhostとは自分自身、つまり今使っているPCを指していますが、WSLを使っている場合はUbuntu上のアプリケーションも同様にlocalhostで通信が可能です。1026はOrionを動かすときに外から利用可能と指定したポート番号です。 | |
httpですから、ブラウザから"version"というファイルを読む時と同じ指定ですね。試しにブラウザで同じ問い合わせをしても、同じように表示されます。なぜこういう仕組みにしているのかにつ いては、後で説明します。 この応答をよく見ると、波かっこで囲われて、構造と、"orion"や"version"というキーワードの右側にコロン(":")を挟んで値が書き込まれています。この形式をjson形式と言います。このように、Fiwareでは入出力はjson形式を使う約束になっています。 これで、前準備は完了です。 |
|
|