genpaku's footprint

忘れてもいいように、技術で日々が少し便利になることを書いていきます

Invoke-RestMethodを使ってみる

curlの代わりにInvoke-RestMethod

SolrをやっているとRestApiを使う機会がかなりあります。 そんな時に必ず出てくるのが「curl」というコマンドです。 カールと読むらしいです。httpだけではなく、様々なプロトコルが 使えるようです。 参考URL: cURL - Wikipedia

でも私はWindowsユーザーです。 Cygwinを入れてもいんですけど、インストールが面倒です。 それならデフォルトに入っているPowershellを使おうと思い調べてみたところ 「Invoke-RestMethod 」なるコマンドを見つけました。

※ ちなみに名前の通り、Invoke-RestMethodで使えるプロトコルは、httpとhttpsです。

参考URL: Invoke-RestMethod

Invoke-RestMethod を使ってみる

簡単に使い方をまとめておきます。

  • Invoke-WebRequestを利用してFormを取得してPOSTするのはこんな感じらしいです。(上のサイトより)
$r = Invoke-WebRequest http://website.com/login.aspx 
$r.Forms[0].Name = "MyName" 
$r.Forms[0].Password = "MyPassword" 
Invoke-RestMethod http://website.com/service.aspx -Body $r
  • Jsonファイルを利用して、POSTします。
Invoke-RestMethod -Uri $api -InFile data\book_demo.json -ContentType 'application/json' -Method Post

-Uri ・・・ 呼び出す、APIのURLを指定します。
-InFile ・・・ bodyになるファイルを指定します。
-ContentType ・・・ ContentTypeを指定します。 (content-type一覧
-Method ・・・ HTTPメソッドを指定します。

  • RSSサービスを利用して、GETでデータを取得します。
Invoke-RestMethod -Uri http://news.yahoo.co.jp/pickup/computer/rss.xml -Method Get | Format-Table -Property title,link

簡単ですね。いろいろ、使い道がありそうです。