본문 바로가기

통합개발

Powershell에서 curl 사용하기


PowerShell은 대소문자를 가리지 않는다.


우선 curl이 실제 linux에서 사용되는 프로그램인지 확인해본다.


PS prompt> Get-Alias


Alias           compare -> Compare-Object

Alias           copy -> Copy-Item

Alias           cp -> Copy-Item

Alias           cpi -> Copy-Item

Alias           cpp -> Copy-ItemProperty

Alias           curl -> Invoke-WebRequest

Alias           cvpa -> Convert-Path

Alias           dbp -> Disable-PSBreakpoint

Alias           del -> Remove-Item

Alias           diff -> Compare-Object

Alias           dir -> Get-ChildItem

Alias           dnsn -> Disconnect-PSSession

Alias           ebp -> Enable-PSBreakpoint

Alias           echo -> Write-Output


굵은 폰트를 보면 curl이 invoke-webrequest에 alias된 것을 확인 할 수 있다. 

실제로는 invoke-webrequest가 호출 된다.

그렇다면 curl을 사용할때 invoke-webrequest의 형식을 따라 주면된다.


PS prompt> help invoke-webrequest


이름

    Invoke-WebRequest


구문

    Invoke-WebRequest [-Uri] <uri>  [<CommonParameters>]



별칭

    iwr

    wget

    curl


-uri 옵션뒤에 commonparametes를 넣으라고 나온다 참 단순하다.


get-help invoke-webrequest -online 으로 자세한 옵션을 살펴본다.


Invoke-WebRequest

      [-UseBasicParsing]

      [-Uri] <Uri>

      [-WebSession <WebRequestSession>]

      [-SessionVariable <String>]

      [-Credential <PSCredential>]

      [-UseDefaultCredentials]

      [-CertificateThumbprint <String>]

      [-Certificate <X509Certificate>]

      [-UserAgent <String>]

      [-DisableKeepAlive]

      [-TimeoutSec <Int32>]

      [-Headers <IDictionary>]

      [-MaximumRedirection <Int32>]

      [-Method <WebRequestMethod>]

      [-Proxy <Uri>]

      [-ProxyCredential <PSCredential>]

      [-ProxyUseDefaultCredentials]

      [-Body <Object>]

      [-ContentType <String>]

      [-TransferEncoding <String>]

      [-InFile <String>]

      [-OutFile <String>]

      [-PassThru]

      [<CommonParameters>]


- uri

- method

- body

- contenttype

을 이용해보자


PS prompt> $body = '{

>>     "jsonrpc":"2.0",

>>     "method":"web3_clientVersion",

>>     "params": [],

>>     "id":100

>> }'

body 변수에 필요한 내용을 우선 기입해 준다.


PS prompt> $R=Invoke-WebRequest http://192.168.0.35:8545 -SessionVariable fb -method post -body $body -contenttype "application/json"


PS prompt> $R

StatusCode        : 200

StatusDescription : OK

Content           : {"jsonrpc":"2.0","id":100,"result":"Geth/v1.5.5-stable-ff07d548/linux/go1.6.2"}

RawContent        : HTTP/1.1 200 OK

                    Vary: Origin

                    Content-Length: 80

                    Content-Type: application/json

                    Date: Wed, 21 Mar 2018 03:25:57 GMT

                    {"jsonrpc":"2.0","id":100,"result":"Geth/v1.5.5-stable-ff07d548/linux/go1.6.2"...

Forms             : {}

Headers           : {[Vary, Origin], [Content-Length, 80], [Content-Type, application/json], [Date, Wed, 21 Mar 2018 03:25:57 GMT]}

Images            : {}

InputFields       : {}

Links             : {}

ParsedHtml        : mshtml.HTMLDocumentClass

RawContentLength  : 80

$R 변수에 응답을 저장한 후 처리후에 확인해본다.




'통합개발' 카테고리의 다른 글

curl 대신 postman사용하기  (0) 2018.03.21