JSON example
1 2 3 4 | { "Computername": "abc", "Postype": "ABCDE" } |
Invoke-WebRequest
1 2 3 4 5 6 7 8 9 10 11 12 | # Using Invoke-WebRequest to make a GET request $response = Invoke-WebRequest -Uri 'http://localhost:8080/GetName?macadress=aabbccddeeffgg' -Method Get # Display the type of object returned Write-Host "Response type:" $response .GetType().FullName # Accessing raw content and manually parsing JSON $jsonData = $response .Content | ConvertFrom-Json # Displaying the parsed data Write-Host "Computername:" $jsonData .Computername Write-Host "Postype:" $jsonData .Postype |
Output Explanation for Invoke-WebRequest
:
- Response Type: The response is a
HtmlWebResponseObject
, which is more complex and includes:Content
: The raw string of the response body.Headers
: All headers returned by the server.StatusCode
: HTTP status code of the response.
- Manual Parsing: Since
Invoke-WebRequest
returns raw content, you need to manually parse JSON usingConvertFrom-Json
Invoke-RestMethod
1 2 3 4 5 6 7 8 9 | # Using Invoke-RestMethod to make a GET request $response = Invoke-RestMethod -Uri 'http://localhost:8080/GetName?macadress=aabbccddeeffgg' -Method Get # Display the type of object returned Write-Host "Response type:" $response .GetType().FullName # Directly accessing the parsed JSON data Write-Host "Computername:" $response .Computername Write-Host "Postype:" $response .Postype |
Key Differences:
- Response Handling:
Invoke-WebRequest
: Returns a detailedHtmlWebResponseObject
including raw content, headers, and status codes. You need to parse JSON manually.Invoke-RestMethod
: Automatically parses the response into a PowerShell object, making it easier to access structured data directly.
- Ease of Use:
Invoke-WebRequest
: Best for scenarios where you need to work with raw HTML, headers, or need detailed control over the HTTP response.Invoke-RestMethod
: Ideal for interacting with REST APIs and working with structured data like JSON or XML.
- Performance:
Invoke-RestMethod
is generally faster and more straightforward when dealing with APIs that return structured data, as it skips the need for manual parsing.
0 Comments