본문 바로가기
프로그래밍

PowerShell의 Invoke-WebRequest로 Post Request 보내기

by bantomak 2024. 9. 27.
반응형

PowerShell 사용하기

Powershell은 웹브라우저가 아니기 때문에 웹브라우저처럼 html을 보기 좋은 형태로 출력해주지 않지만 html을 text 형태로 바로 확인이 가능하다. 웹페이지가 적절하게 응답하는지, 오류는 없는지 확인하고 싶을 때 유용하게 사용이 가능하다.

(Linux의 curl과 같은 기능을 제공)

Invoke-WebRequest

Powershell 3.0부터 Invoke-WebRequest라는 cmdlet이 도입되었다.

Powershell에서 PSVersionTable을 입력해보면 해당 컴퓨터의 Powershell 버전을 확인할 수 있다.

 

$PSVersionTable

 

버전 3.0 이상이 설치된 컴퓨터라면 Invoke-WebRequest 명령어를 사용하여 http 혹은 https 요청을 발송할 수 있다.

 

간단하게 Invoke-WebRequest를 이용하여 "구글" 초기화면을 요청해 보도록 하자.

아래와 같이 uri 옵션에 요청하고자 하는 구글 주소를 넣고 실행해보면 StatusCode, Content, Header, Content 길이, Links 등과 같은 정보를 확인할 수 있다.

 

Invoke-WebRequest -Uri https://www.google.com

StatusCode를 이용하면 특정 URL의 웹페이지 상태를 확인할 수 있다.

예를 들어 관리하는 웹페이지의 StatusCode가 200이면 정상적으로 서비스하고 있음을 알 수 있고, 404, 500등의 오류가 발생하면 그에 따라 적절히 관리할 수 있을 것이다.

 

$URL = "https://www.google.com"; (Invoke-WebRequest -Uri $URL).StatusCode;

이제 구글에게 Get 방식을 사용해서 'powershell'이라는 검색어를 요청해 보자.

'powershell'이라는 검색어는 'https://www.google.com/search' 페이지에 'q' 파라미터에 값을 전달해야 한다.

 

$URL = "https://www.google.com/search"; $Param = @{q='powershell'}; Invoke-WebRequest -Uri $URL -Body $Param -Method GET;

이 결과는 구글에서 검색어로 'powershell'을 검색한 결과 페이지와 같다.

Post 방식으로 요청 보내기

Get 방식이 아닌 Post 방식으로 변수를 전달해야 하려면 -Method 옵션에 'POST'를 입력하면 된다.

Invoke-WebRequest -Method POST "http://www.YOUR_SIRE.co.kr/test" -Body "{}" -ContentType "application/json;charset=utf-8";

참고 사이트

 

Powershell 파워쉘로 http 혹은 https 요청 보내기

우리는 Chrome, Internet Explorer, Firefox와 같인 웹브라우저를 통해 인터넷을 사용합니다. 웹브라우...

blog.naver.com

댓글