PowerShell/HTTPのPOSTをする方法
の編集
Top
/
PowerShell
/
HTTPのPOSTをする方法
[
トップ
] [
編集
|
差分
|
バックアップ
|
添付
|
リロード
] [
新規
|
一覧
|
検索
|
最終更新
|
ヘルプ
]
-- 雛形とするページ --
(no template pages)
#navi(../) * PowerShellでHTTPのPOSTをする方法 [#i7116639] 本記事は、PowerShellのInvoke-WebRequestコマンドレットを使って、HTTPのPOSTを実現する記事になります。~ PowerShellからPOSTしたいのだけど…と思われている方、本資料が参考になると思います。~ JSONやXMLで返却されるのであれば、Invoke-RestMethodを使用するのも良いと思います。~ #contents #htmlinsertpcsp(win-top.html,win-sp.html) * 関連記事 [#ob065105] -[[PowerShellでwgetやcurlのようにウェブページを取得する方法>PowerShell/wgetやcurlのようにウェブページを取得する]] -[[PowerShellでHTTPのPOSTを実現する方法>PowerShell/HTTPのPOSTをする方法]] * POSTするためのWebサーバを用意 [#if5a27c9] 以下のPHPスクリプトをPHPが動作するサーバに設置して動作確認を行いました。~ POSTされたaとbを足し算するだけの簡単なスクリプトです。 #ref(post.php) <?php $a = $_POST["a"]; $b = $_POST["b"]; $c = $a + $b; echo $c ?> POSTされた値を足し算し、合計値を表示するPHPスクリプトになります。 * PowerShellでPOSTしてみる [#cfbcd176] 上記のphpスクリプトを配置し、PowerShellからPOSTした結果は以下の通りです。 + POSTするパラメータをハッシュに指定。 PS C:\> $postParams = @{a="1"; b="2"} +設定したハッシュの確認 PS C:\> $postParams Name Value ---- ----- a 1 b 2 +post.phpを指定したサーバのURLを指定し、以下のようにして実行 PS C:\> Invoke-WebRequest http://localhost/post.php -Method POST -Body $postParams +上記のコマンドを実行すると、POSTしてサーバから返却された情報が表示されます。 StatusCode : 200 StatusDescription : OK Content : 3 RawContent : HTTP/1.1 200 OK Connection: keep-alive Content-Length: 2 Content-Type: text/html; charset=UTF-8 Date: Mon, 23 Apr 2018 14:44:43 GMT Server: Apache X-Powered-By: PHP/5.6.21 3 Forms : {} Headers : {[Connection, keep-alive], [Content-Length, 2], [Content-Type, text/html; charset=UTF-8], [Date, Mo n, 23 Apr 2018 14:44:43 GMT]...} Images : {} InputFields : {} Links : {} ParsedHtml : mshtml.HTMLDocumentClass RawContentLength : 2 +実際に計算された情報のみ(content部分)のみ取り出すと、足し算されて合計値が取得できているのが確認できます。 PS C:\> (Invoke-WebRequest http://just4fun.biz/fol/post.php -Method POST -Body $postParams).content 3 したがって、以下の構文で簡単にPOSTすることができます。 Invoke-WebRequest サーバURL -Method POST -Body パラメータ または Invoke-WebRequest -Uri サーバURL -Method POST -Body パラメータ 上記ではパラメータとなる情報を変数に設定し、Invoke-WebRequestコマンドレットに渡していましたが、~ 以下のように一行で書くことも可能です。 PS C:\> (Invoke-WebRequest -Uri http://localhost/post.php -Method POST -Body @{"a"="8";"b"="7"}).content 15 以上、PowerShellのInvoke-WebRequestコマンドレットを使って簡単にPOSTできる方法の紹介でした。 #htmlinsertpcsp(win-btm.html,win-sp.html)
タイムスタンプを変更しない
#navi(../) * PowerShellでHTTPのPOSTをする方法 [#i7116639] 本記事は、PowerShellのInvoke-WebRequestコマンドレットを使って、HTTPのPOSTを実現する記事になります。~ PowerShellからPOSTしたいのだけど…と思われている方、本資料が参考になると思います。~ JSONやXMLで返却されるのであれば、Invoke-RestMethodを使用するのも良いと思います。~ #contents #htmlinsertpcsp(win-top.html,win-sp.html) * 関連記事 [#ob065105] -[[PowerShellでwgetやcurlのようにウェブページを取得する方法>PowerShell/wgetやcurlのようにウェブページを取得する]] -[[PowerShellでHTTPのPOSTを実現する方法>PowerShell/HTTPのPOSTをする方法]] * POSTするためのWebサーバを用意 [#if5a27c9] 以下のPHPスクリプトをPHPが動作するサーバに設置して動作確認を行いました。~ POSTされたaとbを足し算するだけの簡単なスクリプトです。 #ref(post.php) <?php $a = $_POST["a"]; $b = $_POST["b"]; $c = $a + $b; echo $c ?> POSTされた値を足し算し、合計値を表示するPHPスクリプトになります。 * PowerShellでPOSTしてみる [#cfbcd176] 上記のphpスクリプトを配置し、PowerShellからPOSTした結果は以下の通りです。 + POSTするパラメータをハッシュに指定。 PS C:\> $postParams = @{a="1"; b="2"} +設定したハッシュの確認 PS C:\> $postParams Name Value ---- ----- a 1 b 2 +post.phpを指定したサーバのURLを指定し、以下のようにして実行 PS C:\> Invoke-WebRequest http://localhost/post.php -Method POST -Body $postParams +上記のコマンドを実行すると、POSTしてサーバから返却された情報が表示されます。 StatusCode : 200 StatusDescription : OK Content : 3 RawContent : HTTP/1.1 200 OK Connection: keep-alive Content-Length: 2 Content-Type: text/html; charset=UTF-8 Date: Mon, 23 Apr 2018 14:44:43 GMT Server: Apache X-Powered-By: PHP/5.6.21 3 Forms : {} Headers : {[Connection, keep-alive], [Content-Length, 2], [Content-Type, text/html; charset=UTF-8], [Date, Mo n, 23 Apr 2018 14:44:43 GMT]...} Images : {} InputFields : {} Links : {} ParsedHtml : mshtml.HTMLDocumentClass RawContentLength : 2 +実際に計算された情報のみ(content部分)のみ取り出すと、足し算されて合計値が取得できているのが確認できます。 PS C:\> (Invoke-WebRequest http://just4fun.biz/fol/post.php -Method POST -Body $postParams).content 3 したがって、以下の構文で簡単にPOSTすることができます。 Invoke-WebRequest サーバURL -Method POST -Body パラメータ または Invoke-WebRequest -Uri サーバURL -Method POST -Body パラメータ 上記ではパラメータとなる情報を変数に設定し、Invoke-WebRequestコマンドレットに渡していましたが、~ 以下のように一行で書くことも可能です。 PS C:\> (Invoke-WebRequest -Uri http://localhost/post.php -Method POST -Body @{"a"="8";"b"="7"}).content 15 以上、PowerShellのInvoke-WebRequestコマンドレットを使って簡単にPOSTできる方法の紹介でした。 #htmlinsertpcsp(win-btm.html,win-sp.html)
テキスト整形のルールを表示する
添付ファイル:
post.php
217件
[
詳細
]