web-dev-qa-db-fra.com

Comment faire en sorte qu'Invoke-RestMethod affiche le corps de la réponse tel quel

J'essaie d'utiliser l'applet de commande powershell Invoke-RestMethod pour imprimer un point de terminaison JSON sur la console.

La commande s'exécute avec succès, mais le résultat final est une table de terminaux contenant tous les champs de niveau 1 du json.

J'exécute l'applet de commande comme ceci:

Invoke-RestMethod -Uri <some url here> -Method GET -ContentType "application/json"

Et obtenir quelque chose comme ça:

sections _links
-------- ------
         {@{rel=parent; href=https://us9.api.mailchimp.com/3.0/templates/138...

Comment l'obtenir pour qu'il imprime simplement la réponse brute au terminal sans formater?

5
Nitzankin

Tout d’abord, les -Method et -ContentType que vous fournissez sont les valeurs par défaut, vous pouvez les supprimer. Et pour obtenir le JSON, remettez-le en JSON.

Invoke-RestMethod -Uri "http://example.com/" | ConvertTo-Json -Depth 10

Je ne sais pas pourquoi vous voulez lancer JSON, mais bon, voilà.

6
4c74356b41

L'autre réponse fonctionne très bien pour les réponses JSON, mais le commutateur -UseBasicParsing fonctionne pour tout type de réponse:

(Invoke-WebRequest -UseBasicParsing -Uri 'http://example.com').Content

vous donnera uniquement le contenu de la réponse (dans le cas example.com, le code HTML brut ou dans votre cas d'utilisation, le code JSON brut).

2
NH.