programing

본문 매개변수가 '@'로 시작하는 경우 PowerShell POST 요청

sourcejob 2023. 8. 12. 10:15
반응형

본문 매개변수가 '@'로 시작하는 경우 PowerShell POST 요청

PowerShell에서 POST 요청을 하고 싶습니다.다음은 포스트맨의 신체 세부 사항입니다.

{
  "@type":"login",
  "username":"xxx@gmail.com",
  "password":"yyy"
}

PowerShell에서 이 정보를 전달하는 방법은 무엇입니까?

다음 작업을 수행할 수 있어야 합니다.

$params = @{"@type"="login";
 "username"="xxx@gmail.com";
 "password"="yyy";
}

Invoke-WebRequest -Uri http://foobar.com/endpoint -Method POST -Body $params

이렇게 하면 게시물이 본문으로 전송됩니다.그러나 이를 Json으로 게시하려면 명시적으로 게시해야 합니다.이 문서를 JSON으로 게시하려면 내용을 지정합니다.다음을 사용하여 본문을 입력하고 Json으로 변환합니다.

Invoke-WebRequest -Uri http://foobar.com/endpoint -Method POST -Body ($params|ConvertTo-Json) -ContentType "application/json"

Extra: JSON 및 REST apps를 처리하기 위해 Invoke-Rest Method를 사용할 수도 있습니다(이 방법을 사용하면 deserialize를 위해 추가 줄을 저장할 수 있습니다).

REST-API를 사용합니다.JSON을 문자열에 저장하고 본문으로 사용합니다. 예:

$JSON = @'
{"@type":"login",
 "username":"xxx@gmail.com",
 "password":"yyy"
}
'@

$response = Invoke-RestMethod -Uri "http://somesite.com/oneendpoint" -Method Post -Body $JSON -ContentType "application/json"

Powershell 3을 사용하면 몇 가지 문제가 있었던 것으로 알고 있습니다.Invoke-RestMethod하지만 당신은 사용할 수 있어야 합니다.Invoke-WebRequest대체품으로:

$response = Invoke-WebRequest -Uri "http://somesite.com/oneendpoint" -Method Post -Body $JSON -ContentType "application/json"

매번 자신의 JSON을 작성하지 않으려면 해시 테이블을 사용하고 PowerShell을 사용하여 게시하기 전에 JSON으로 변환할 수 있습니다.전.

$JSON = @{
    "@type" = "login"
    "username" = "xxx@gmail.com"
    "password" = "yyy"
} | ConvertTo-Json

@프로드 F.는 옳은 답을 했습니다.

그나저나.Invoke-WebRequest또한 인쇄할 수 있습니다.200 OK그리고 많은 bla, bla, bla...도움이 될 수도 있지만, 저는 여전히 그것을 선호합니다.Invoke-RestMethod어느 쪽이 더 가볍습니까?

또한 사용해야 한다는 것을 명심하십시오.| ConvertTo-Json헤더가 아닌 본문에 대해서만:

$body = @{
 "UserSessionId"="12345678"
 "OptionalEmail"="MyEmail@gmail.com"
} | ConvertTo-Json

$header = @{
 "Accept"="application/json"
 "connectapitoken"="97fe6ab5b1a640909551e36a071ce9ed"
 "Content-Type"="application/json"
} 

Invoke-RestMethod -Uri "http://MyServer/WSVistaWebClient/RESTService.svc/member/search" -Method 'Post' -Body $body -Headers $header | ConvertTo-HTML

그런 다음 a를 추가할 수 있습니다.| ConvertTo-HTML가독성 향상을 요구한 끝에.

언급URL : https://stackoverflow.com/questions/35722865/making-a-powershell-post-request-if-a-body-param-starts-with

반응형